Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Ebook 1.Number Systems

Ebook 1.Number Systems

Published by sariya118, 2021-09-11 08:50:26

Description: เรื่อง.Number Systems

Search

Read the Text Version

12 หนว ยท่ี 1ระบบตวั เลข แผนกวชิ าชา งไฟฟากําลงั

13 หน่วยที่ 1 ระบบตัวเลข (Number Systems) บทนํา จาํ นวนหรือตวั เลขที่เราคุน้ เคยก็คือ ระบบเลขฐานสิบ ซ่ึงมีเลขที่ใชใ้ นระบบ 10 ตวั ไดแ้ ก่ 0, 1, 2, 3, 4, 5, 6, 7, 8 และ 9 แต่สาํ หรับการทาํ งานของเครื่องคอมพิวเตอร์ไมส่ ามารถ จะใชเ้ ลขฐานสิบได้ เนื่องจากการนาํ เลขฐานสิบมาทาํ งานในเครื่องคอมพิวเตอร์หรือระบบดิจิตอล น้นั ทาํ ใหก้ ารออกแบบวงจรมีความยงุ่ ยากซบั ซอ้ นเกินความจาํ เป็น ดงั น้นั จึงตอ้ งใชเ้ ลขฐานอื่นแทน เครื่องคอมพวิ เตอร์หรือระบบดิจิตอลน้นั จะทาํ งานกบั ระบบเลขฐานสองหรือระบบเลขไบนาร่ี (Binary Number System) ในระบบเลขฐานสองจะมีตวั เลข คือ 0 และ 1 ถา้ นาํ มาแทนปริมาณ จาํ นวนมาก ๆ จะมีความยาวของตวั เลขมากไมส่ ะดวกตอ่ การเขียนหรือการจดจาํ จึงตอ้ งมีระบบเลข ฐานแปด (Octal Number System) และระบบเลขฐานสิบหก (Hexadecimal Number System) มาใช้ งานแทน แต่ส่ิงที่ระบบดิจิตอลหรือเครื่องคอมพวิ เตอร์ทาํ งานได้ จะเป็นระบบเลขฐานสองเทา่ น้นั ในบทน้ีจะกล่าวถึงระบบเลขฐานสอง ระบบเลขฐานแปด และระบบเลขฐานสิบหกโดยเรียนรู้วธิ ี นบั จาํ นวน การแปลงฐานเลข ระหวา่ งเลขฐานสิบ เลขฐานสอง เลขฐานแปด และเลขฐานสิบหก นอกจากน้นั สามารถคาํ นวณเลขฐานสองไดอ้ ีกดว้ ย 1.1 ระบบตัวเลข (Number Systems) ระบบตวั เลขแต่ละระบบมีจาํ นวนตวั เลขที่ใชเ้ หมือนกบั ช่ือของระบบตวั เลขน้นั และมีฐาน (Base) ของจาํ นวนเลขตามชื่อของมนั ดว้ ย เช่น ระบบตวั เลขทางพชี คณิตท่ีนิยมใชใ้ นระบบดิจิตอลมีอยู่ 4 ระบบ คือ 1.1.1 ระบบเลขฐานสอง (Binary Number System) มีเลขฐานเป็น 2 นนั่ คือ ใชส้ ญั ลกั ษณ์ หรือหลกั ท่ีแตกตา่ งกนั เท่ากบั 2 ในการแสดงค่าของตวั เลข ระบบเลขฐานสอง ประกอบดว้ ยเลข 2 ตวั คือ 0 และ 1 1.1.2 ระบบเลขฐานแปด (Octal Number System) มีเลขฐานเป็น 8 นนั่ คือ ใชส้ ัญลกั ษณ์ หรือหลกั ที่แตกตา่ งกนั เทา่ กบั 8 ในการแสดงคา่ ของตวั เลขระบบเลขฐานแปด ประกอบดว้ ยเลข 8 ตวั คือ 0, 1, 2, 3, 4, 5, 6, 7

14 1.1.3 ระบบเลขฐานสิบ (Decimal Number System) มีเลขฐานเป็น 10 นนั่ คือ ใชส้ ญั ลกั ษณ์ หรือหลกั ที่แตกตา่ งกนั เทา่ กบั 10 ในการแสดงค่าของตวั เลขระบบเลขฐานสิบ ประกอบดว้ ยเลข 10 ตวั คือ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 1.1.4 ระบบเลขฐานสิบหก (Hexadecimal Number System) จะมีเลขฐานเป็น 16 นนั่ คือ จะใชส้ ญั ลกั ษณ์หรือหลกั ที่แตกตา่ งกนั เท่ากบั 16 ในการแสดงค่าของตวั เลขระบบเลขฐานสิบหก ประกอบดว้ ยเลข 16 ตวั คือ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F เมื่อ A = 10, B = 11, C = 12, D = 13, E = 14, F = 15 เลขฐานสิบ เลขฐานสอง เลขฐานแปด เลขฐานสิบหก 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F 16 20 10 17 10000 21 11 10001 ตารางท่ี 1.1แสดงการเปรียบเทียบเลขฐานต่าง ๆกบั เลขฐานสิบ

15 1.2 การเปลยี่ นฐานของระบบตวั เลข 1.2.1 การแปลงเลขฐานสิบเป็ นเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก การแปลงเลขฐานสิบที่เป็ นเลขจาํ นวนเตม็ ให้เป็นเลขฐานสอง เลขฐานแปดและ เลขฐานสิบหกมีหลกั การง่าย และคลา้ ยคลึงกนั ซ่ึงเราสามารถทาํ ไดโ้ ดยการหารเลขฐานสิบ ท่ีตอ้ งการแปลงดว้ ยฐานของเลขที่ตอ้ งการจะแปลงหลาย ๆ ตวั จนหารต่อไปไม่ไดเ้ ช่น ถา้ ตอ้ งการแปลงใหเ้ ป็ นเลขฐานสองก็เอา 2 หาร ถา้ ตอ้ งการแปลงใหเ้ ป็ นเลขฐานแปดก็เอา 8 หาร ถา้ ตอ้ งการแปลงใหเ้ ป็ นเลขฐานสิบหกกเ็ อา 16 หาร เศษท่ีเหลือจากการหารแต่ละคร้ังก็คือคาํ ตอบท่ีตอ้ งการ โดยเศษท่ีเหลือจากการหาร คร้ังแรกคือตวั ที่มีนยั ความสาํ คญั นอ้ ยที่สุด (Least Significant Digit : LSD) และเศษท่ีเหลือจากการ หารคร้ังสุดทา้ ยเป็นตวั ที่มีนยั ความสาํ คญั สูงที่สุด (Most Significant Digit : MSD) ส่วนเลขฐานสิบ ที่เป็นทศนิยม ถา้ ตอ้ งการแปลงใหเ้ ป็นเลขฐานอ่ืนๆ ดงั กล่าวทาํ ไดโ้ ดยการคูณจาํ นวนทศนิยมน้นั ดว้ ยฐานของเลขท่ีตอ้ งการแปลงหลายๆ คร้ังจนมีค่าเป็นศูนย์ ถา้ ตอ้ งการแปลงใหเ้ ป็ นเลขฐานสองกเ็ อา 2 คูณ ถา้ ตอ้ งการแปลงใหเ้ ป็ นเลขฐานแปดก็เอา 8 คูณ ถา้ ตอ้ งการแปลงใหเ้ ป็ นเลขฐานสิบหกกเ็ อา 16 คูณ ผลลพั ธ์จากการคูณที่เป็นจาํ นวนเตม็ ก็คือ คาํ ตอบ ตวั อย่างที่ 1.1 จงแปลง (35)10 ใหเ้ ป็นเลขฐานสอง LSD วธิ ีทาํ 2 35 MSD 2 17 เศษ 1 2 8 เศษ 1 2 4 เศษ 0 2 2 เศษ 0 2 1 เศษ 0 0 เศษ 1 นน่ั คือ (35)10 = (100011)2 ตวั อย่างท่ี 1.2 จงแปลง (0.6875)10 ใหเ้ ป็นเลขฐานสอง วธิ ีทาํ 0.6875 0.3750 0.7500 0.50002× 2 × 2× 2 × 1.0000 1.3750 0.7500 1.5000

16 10 1 1 นน่ั คือ (0.6875)10 = (0.1011)2 ตวั อย่างที่ 1.3 จงแปลง (41.53125)10 ใหเ้ ป็นเลขฐานสอง วธิ ีทาํ 2 41 2 20 เศษ 1 0.53125 0.062520× 0.12500 0. 25000 0.500020× 2 10 เศษ 0 2× 2× 2× 2 5 เศษ 0 1.06250 0.12500 0.25000 0. 50000 1.00000 2 2 เศษ 1 2 1 เศษ 0 (0.53125)10 = (0.10001)2 0 เศษ 1 ( 41)10 = (101001)2 นน่ั คือ (41.53125)10 = (101001.10001)2 ตวั อย่างท่ี 1.4 จงแปลงเลขฐานสิบใหเ้ ป็นเลขฐานแปด วธิ ีทาํ จงแปลง (58)10 ใหเ้ ป็ น เลขฐานแปด จงแปลง ( 0.9375)10 ให้ เป็ นเลขฐานแปด 8 58 0.9375 × 0.5000 × 8 7 เศษ 2 8 8 0 เศษ 7 7.5000 4.0000 นน่ั คือ ( 58)10 = (72)8 นน่ั คือ ( 0.9375)10 = (0.74)8 ตัวอย่างที่ 1.5 จงแปลง (415.65625)10 ใหเ้ ป็นเลขฐานแปด วธิ ีทาํ 8 415 0.65625 8 51 เศษ 7 0.25000 8 8 8 6 เศษ 3 5.25000 2.00000 0 เศษ 6

17 ×× (0.65625)10 = (0.52)8 นน่ั คือ (415.65625)10 = (637.52)8 ตัวอย่างที่ 1.6 จงแปลงเลขฐานสิบ ใหเ้ ป็นเลขฐานสิบหก วธิ ีทาํ จงแปลง (87)10 เป็ นเลขฐานสิบหก จงแปลง (0.46875)10 เป็ นเลขฐานสิบหก 16 87 16 5 เศษ 7 0.46875 × 0.50000 16 16× 0 เศษ 5 7.50000 8.00000 นนั่ คือ (87)10 = ( 57)16 นน่ั คือ (0.46875)10 = (0.78)16 ตัวอย่างที่ 1.7 จงแปลง (2606.1015625)10 ใหเ้ ป็นเลขฐานสิบหก วธิ ีทาํ 16 2606 0.1015625 × 0. 6250000 16 162 เศษ 14 (E =14) 16 16 × 16 10 เศษ 2 1.6250000 10.000000 0 เศษ 10 (A=10) (0.1015625)10 = (0.1A) 16 (2606)10 = (A2E) 16 นนั่ คือ (2606.1015625)10 = (A2E.1A)16 1.2.2 การแปลงเลขฐานสอง เลขฐานแปด และเลขฐานสิบหกเป็นเลขฐานสิบ การแปลงเลขฐานสอง เลขฐานแปด และเลขฐานสิบหกเป็ นเลขฐานสิบ สามารถทาํ ไดโ้ ดยการนาํ เลขแต่ละตาํ แหน่งของฐานเลขน้นั ๆ คูณดว้ ยน้าํ หนกั (Weighting) ของเลขฐานน้นั แลว้ นาํ มารวมกนั ท้งั หมดก็จะไดค้ าํ ตอบที่ตอ้ งการ

18 ตวั อย่างที่ 1.8 จงแปลง (110110)2 ใหเ้ ป็นเลขฐานสิบ วธิ ีทาํ (110110)2 = 1×25+1×24+0×23+1×22+1×21+0×20 = 32 + 16 + 0 + 4 + 2 + 0 = (54)10 ตวั อย่างที่ 1.9 จงแปลง (10111011.1101)2 ใหเ้ ป็นเลขฐานสิบ วธิ ีทาํ = 1×27+ 0×26+1×25+1×24+1×23+0×22+1×21+1×20+1×2-1+1×2-2+0×2-3+1×2-4 = 128 + 0 + 32 + 16 + 8 + 0 + 2 + 1 + 0.5 +0.25 + 0 + 0.0625 = (187.8125)10 ตวั อย่างที่ 1.10 จงแปลง (37)8 ใหเ้ ป็นเลขฐานสิบ วธิ ีทาํ (37)8 = 3 × 81 + 7 × 80 = 24 + 7 = (31)10 ตัวอย่างที่ 1.11 จงแปลง (0.63)8 ใหเ้ ป็นเลขฐานสิบ วธิ ีทาํ (0.63)8 = 6 × 8-1 + 3 × 8-2 = 6 × 0.125 + 3 × 0.015625 = 0.75 + 0.046875 = (0.796875)10 ตัวอย่างท่ี 1.12 จงแปลง (374.24)8 ใหเ้ ป็นเลขฐานสิบ วธิ ีทาํ (374.24)8 = 3 × 82+ 7 × 81+ 4 × 80 + 2 × 8-1 + 4 × 8-2 = 3 × 64 + 7 × 8 + 4 × 1 + 2 × 0.75 + 4 × 0.015625 = 192 + 56 + 4 + 0.25 + 0.0625

19 = (252.3125)10 ตัวอย่างที่ 1.13 จงแปลง (6E) 16 ใหเ้ ป็นเลขฐานสิบ วธิ ีทาํ (6E) 16 = 6 × 161 + E × 160 = 6 × 16 + 14 × 1 = 96 + 14 = (110)10 ตวั อย่างที่ 1.14 จงแปลง (0.A5)16 ใหเ้ ป็นเลขฐานสิบ วธิ ีทาํ (0.63)16 = A × 16-1 + 5 × 16-2 = 10 × 0.0625 + 5 × 0.00390625 = 0.625 + 0.01953 = (0.64453)10 ตวั อย่างที่ 1.15 จงแปลง (D3C.2F)16 ใหเ้ ป็นเลขฐานสิบ วธิ ีทาํ (D3C.2F)16 = D × 162 + 3 × 161 + C×160 +2×16-1 + F × 16-2 = 13× 256 + 3 × 16 + 12 ×1+ 2× 0.0625 + 15 × 0.00390625 = 3328 + 48 + 12 + 0.125 + 0.05859 = (3388.18359)10 1.2.3 การแปลงเลขฐานสองเป็นเลขฐานแปดและเลขฐานสิบหก การแปลงเลขฐานสองเป็นเลขฐานแปดที่ง่ายที่สุดจะใชว้ ธิ ีไบนาร่ีไตรเพลท็ (Binary Triplet Method) คือจดั เลขฐานสองออกมาเป็นกลุ่ม กลุ่มละ 3 บิตโดยเร่ิมจากจุดทศนิยม ถา้ กลุ่ม ทา้ ยๆ จดั ไมไ่ ดค้ รบ 3 บิต ก็เติมศูนยท์ ี่ดา้ นหนา้ เพม่ิ และแทนค่าตามตารางที่ 1.2 เลขฐานแปด เลขฐานสอง 0 000 1 001 2 010 3 011 4 100

20 5 101 6 110 7 111 ตารางที่ 1.2 แสดงความสมั พนั ธ์ระหวา่ งเลขฐานแปดกบั เลขฐานสอง การแปลงเลขฐานสองเป็นเลขฐานแปดโดยการแทนเลขฐานแปด 1 ตวั สามารถแทนได้ ดว้ ยเลขฐานสอง 3 บิต (คาํ วา่ บิต ยอ่ มาจาก Binary Digit: bit) ดงั น้นั การแปลงเลขฐานสองเป็นเลขฐานแปด หรือการแปลงเลขฐานแปดให้เป็น เลขฐานสองกท็ าํ ไดโ้ ดยการแทนคา่ ตา่ งๆ ตามตารางที่ 1.2 ตวั อย่างที่ 1.16 จงแปลง (110111010)2 ใหเ้ ป็นเลขฐานแปด วธิ ีทาํ ในการทาํ โจทย์ เราแบง่ เลขฐานสองออกเป็นชุดๆ ละ 3 บิต โดยนบั จากทางขวามาทางซา้ ย ถา้ ชุดสุดทา้ ยมีไมถ่ ึง 3 บิต ก็ใหเ้ ติม 0 ลงไปแตถ่ า้ เป็ นทศนิยม การแบง่ เป็นชุดใหน้ บั จากซา้ ยไป ทางขวา เมื่อแบ่งไดเ้ ป็นชุดแลว้ กใ็ หเ้ ป็นเลขฐานแปดตามตาราง 010 = 2 111 = 7 110 = 6 (110111010)2 = (110 111 010)2 = (672)8 ตวั อย่างท่ี 1.17 จงแปลง (11101001000.01011)2 ใหเ้ ป็นเลขฐานแปด วธิ ีทาํ (11101001000.01011)2 = (011 101 001 000. 010 110) 2 000 = 0 001 = 1 101 = 5 011 = 3 010 = 2 110 = 6 (11101001000.01011)2 = (3510.26)8

21 ตัวอย่างที่ 1.18 จงแปลง (637)8 ใหเ้ ป็นเลขฐานสอง วธิ ีทาํ 6 = 110 3 = 011 7 = 111 (637)8 = (110 011111)2 ตัวอย่างท่ี 1.19 จงแปลง (524.61)8 ใหเ้ ป็นเลขฐานสอง วธิ ีทาํ 5 = 101 2 = 010 4 = 100 6 = 110 1 = 001 (524.61)8 = (101010100.110001)2 1.2.4 การแปลงเลขฐานสองเป็นเลขฐานสิบหก และเลขฐานสิบหกเป็นฐานสอง การแปลงเลขฐานสองเป็นเลขสิบหก และการแปลงเลขฐานสิบหกเป็นเลขฐานสอง สามารถทาํ ไดโ้ ดยการแปลงเป็นเลขฐานสิบก่อน ตามท่ีไดก้ ล่าวมาแลว้ ส่วนวธิ ีที่ง่ายก็คลา้ ย ๆ กนั กบั การแปลงเลขฐานสอง เป็ น เลขฐานแปด แตต่ า่ งกนั ท่ีวา่ เลขฐานแปด 1 ตวั แทนดว้ ยเลขฐานสอง 3 บิต ส่วนเลขฐานสิบหก 1 ตวั แทนดว้ ยเลขฐานสอง 4 บิต ความสัมพนั ธ์ระหวา่ งเลขฐานสอง กบั เลขฐานสิบหก แสดงไดต้ ามตารางที่ 1.3 เลขฐานสิบหก เลขฐานสอง เลขฐานสิบหก เลขฐานสอง 0 0000 8 1000 1 0001 9 1001 2 0010 A 1010 3 0011 B 1011 4 0100 C 1100 5 0101 D 1101 6 0110 E 1110

22 7 0111 F 1111 ตารางท่ี 1.3 แสดงความสมั พนั ธ์ระหวา่ งเลขฐานสิบหกกบั เลขฐานสอง ตัวอย่างท่ี 1.20 จงแปลง (100100111100)2 ใหเ้ ป็นเลขฐานสิบหก วธิ ีทาํ (100100111100)2 = (1001 0011 1100 ) 2 1100 = C 0011 = 3 1001 = 9 (100100111100)2 = (93C)16 ตวั อย่างท่ี 1.21 จงแปลง (11111100001101.100011)2 ใหเ้ ป็นเลขฐานสิบหก วธิ ีทาํ (11111100001101.100011)2 = (0011 1111 0000 1101.1000 1100)2 = 3 F 0 D.8 C = (3F0D.8C)16 ตัวอย่าง1.22 จงแปลง (1BE4)16ใหเ้ ป็นเลขฐานสอง วธิ ีทาํ (1BE4)16 = ( 0001 1011 1110 0100 ) 2 = ( 0001101111100100 ) 2 ตัวอย่างท่ี 1.23 จงแปลง (A69.238)16ใหเ้ ป็นเลขฐานสอง วธิ ีทาํ (A69.238)16 = (1010 0110 1001 . 0010 0011 1000)2 = (101001101001.001000111)2 1.2.5 การแปลงเลขฐานแปดเป็นเลขฐานสิบหก และการแปลงเลขฐานสิบหกเป็นเลขฐาน แปด การแปลงเลขฐานแปดเป็ นเลขฐานสิบหก การแปลงเลขฐานสิบหกเป็นเลขฐานแปด มีวธิ ีทาํ ไดห้ ลายวธิ ี แต่วธิ ีที่ง่ายท่ีสุดก็คือ แปลงเลขท่ีตอ้ งการเปล่ียนฐานใหเ้ ป็นเลขฐานสองเสียก่อน แลว้ จึงแปลงตอ่ ไปยงั เลขฐานท่ีตอ้ งการอีกคร้ังหน่ึง

23 ตัวอย่างที่ 1.24 จงแปลง (3721)8ใหเ้ ป็นเลขฐานสิบหก วธิ ีทาํ (3721)8 = ( 011 111 010 001 ) 2 = ( 0111 1101 0001 ) 2 = ( 7D1)16 ตวั อย่างที่ 1.25 จงแปลง (6504.327)8ใหเ้ ป็นเลขฐานสิบหก วธิ ีทาํ (6504.327)8 = (110 101 000 100 . 011 010 111)2 = (1101 0100 0100 . 0110 1011 1000)2 = (D44.6B8)16 ตวั อย่างท่ี 1.26 จงแปลง (7CE2)16ใหเ้ ป็นเลขฐานแปด วธิ ีทาํ (7EC2)16 = ( 0111 1110 1100 0010 ) 2 = ( 111 111 011 000 010 ) 2 = (77342)8 ตัวอย่างท่ี 1.27 จงแปลง (369.08)16ใหเ้ ป็นเลขฐานแปด วธิ ีทาํ (369.08)16 = ( 0011 0110 1001 . 0000 1000)2 = ( 001 101 101 001 . 000 010 )2 = (1551.02)8 1.3. การคํานวณเลขฐานสอง การใชง้ านของเลขฐานฐานต่างๆ มีการใชง้ านในการคาํ นวณพ้นื ฐานใน 4 ลกั ษณะ ดงั ต่อไปน้ีคือ 1.3.1 การบวกกนั ของเลขฐานสอง (Binary Addition) การบวกเลขไม่วา่ จะเป็นเลขฐานอะไรก็แลว้ แต่ จะมีวธิ ีการบวกเหมือนกนั หมด เพื่อ ความเขา้ ใจในวธิ ีการบวกเลข จึงขออธิบายการบวกเลขฐานสิบที่ถูกตอ้ ง ซ่ึงเราคุน้ เคยกนั อยา่ งมาก ท่ีสุดเสียก่อนดงั ตวั อยา่ งต่อไปน้ี ตวั อย่าง 1.28 จงบวก(7536)10 เขา้ กบั (3527)10 ตวั ท่ี 1 (นบั จากทางขวาสุด) 6+7 = 13 ใส่ 3 ทด 1 วธิ ีทาํ ตวั ท่ี 2 3+2 = 5 รวมกบั ตวั ทดอีก 1 จึงเท่ากบั 6 7536 เลขไมถ่ ึง 10 กไ็ มต่ อ้ งเอา 10 ไปลบตามอยา่ งไร 3527 เราจึงใส่ 6 ลงไปและไมม่ ีตวั ทด ตวั ที่ 3 5+5 =10 ผลลพั ธ์ได้ = 10 ใส่ 0 ทด 1 1 1063 ตวั ที่ 4 7+3 =10 รวมตวั ทดอีก 1 เป็น 11 ใส่ 1

24 + หลกั เกณฑท์ ่ีช่วยในการบวกเลขฐานสองมี 4 ขอ้ ดงั น้ีคือ 1) 0 + 0 = 0 2) 0 + 1 = 1 3) 1 + 0 = 1 4) 1 + 1 = 0 หรือเทา่ กบั 0 ทด 1 เช่น การบวกเลขฐานสอง 2 จาํ นวน คือ 1102 และ 1112 สามารถทาํ ไดด้ งั น้ีคือ 110 คอลมั น์ที่ 1 0 + 1 = 1 111 + คอลมั น์ท่ี 2 1 + 1 = 0 ทด 1 11012 คอลมั น์ท่ี 3 1 + 1 + ทด 1 = 10 + 1 = 112 ตวั อย่างท่ี 1.29 ใหห้ าผลบวกของ 1011012 กบั 1101112 วธิ ีทาํ ตวั ทด 11111 101101 + 110111 11001002 ข้ันตอนการบวกกันมดี ังนีค้ ือ 1) คอลมั น์ที่ 1 : 1 + 1 = 0 ทด 1 2) คอลมั น์ท่ี 2 : 0 + 1 = 1+ ทด 1 (จากคอลมั นท์ ี่ 1) = 0 ทด 1 3) คอลมั น์ท่ี 3 : 1 + 1 = 0 ทด 1+ ทด 1 (จากคอลมั นท์ ่ี 2) = 1 ทด 1 4) คอลมั นท์ ่ี 4 : 1 + 0 = 1+ทด 1 (จากคอลมั นท์ ี่ 3) = 0 ทด 1 5) คอลมั นท์ ี่ 5 : 0 + 1 = 1+ ทด 1 (จากคอลมั นท์ ี่ 4) = 0 ทด 1 6) คอลมั น์ที่ 6 : 1 + 1 = 1 + ทด 1( จากคอลมั น์ที่ 5) = 112 ตวั อย่างท่ี 1.30 ใหห้ าผลบวกของ 100012 กบั 111112 วธิ ีทาํ

25 10001 + 11111 1000002 1.3.2 การลบกนั ของเลขฐานสอง (Binary Subtraction) หลกั เกณฑข์ องการลบกนั ของเลขฐานสองมี 4 ขอ้ ดงั น้ีคือ 1) 0 - 0 = 0 2) 1 - 0 = 1 3) 1 - 1 = 0 4) 0 - 1 = 1 ยมื 1 จากคอลมั นถ์ ดั ไป หรือ 10 - 1 = 1 ตัวอย่าง1.31 ใหห้ าค่าของ 10102 ลบกบั 1102 วธิ ีทาํ 10010 110 - 1002 จะเห็นไดว้ า่ ในคอลมั นท์ ่ี 3 จะยมื คอลมั นท์ ่ี 4 มา 1 1.3.2.1 คอมพลีเมนต์ (Complement) เน่ืองจากเลขฐานสองเป็นระบบตวั เลขที่ใชใ้ นเคร่ืองคอมพิวเตอร์ ทาํ การ ลบเลขฐานสองกต็ อ้ งมีวงจรลบแยกออกต่างหากจากวงจรบวก ซ่ึงจะมีความยงุ่ ยากเกิดข้ึน เพราะมี เคร่ืองหมายติดมาดว้ ย วธิ ีท่ีนิยมกค็ ือ การบวกหรือการลบ เราใชว้ ธิ ีการบวกแตเ่ พียงอยา่ งเดียว ตวั เลขท่ีเป็ นคา่ ลบเราใช้ Complement แทนผลลพั ธ์จะไดค้ า่ เครื่องหมายติดมาดว้ ย Complement ใน ระบบเลขฐานสอง มีอยู่ 2 แบบคือ 1) 1’ Complement คือการกลบั สถานะของสัญญาณกล่าวคือ สัญญาณ 1 เปล่ียน เป็นสญั ญาณ 0 และสญั ญาณ 0 เปลี่ยนเป็น 1 2) 2’ Complement คือผลบวกของ 1’ Complement กบั เลข 1 ท้งั น้ีเพอ่ื ประโยชน์ สาํ หรับการลบเลข และเป็นการแสดงคา่ เลขท่ีเป็ นคา่ ลบในระบบคอมพิวเตอร์ ตัวอย่างท่ี 1.32 จงหาค่า 1’ Complement และ 2’ Complement ของเลขฐานสอง ต่อไปน้ี ก. 01101 ข. 1011010 Binary = 01101 Binary = 1011010 1 ’ Complement = 100101+ 1 ’ Complement = 01001011+ 2 ’ Complement = 10011 2 ’ Complement = 0100110

26 1.3.2.2 การลบเลขฐานสอง โดยใช้ 1’ Complement การลบเลขฐานสอง โดยใช้ 1’ Complement มีวธิ ีการดงั น้ี 1) หา 1’ Complement ของตวั ลบ ถา้ จาํ นวนบิตของตวั ลบมีนอ้ ยกวา่ ตวั ต้งั ก็ตอ้ งทาํ จาํ นวนบิตของตวั ลบใหเ้ ท่ากบั จาํ นวนบิตของตวั ต้งั เสียก่อน 2) นาํ ตวั ต้งั มาบวกกบั 1’ Complement ของตวั ลบที่ไดจ้ ากขอ้ 1. 3) ผลบวกจากขอ้ 2. ถา้ มี ตวั ทดตวั สุดทา้ ย (End Around Carry) กใ็ หน้ าํ กลบั ไปบวกกบั บิตที่มีนยั ความสาํ คญั ต่าํ สุด ผลบวกท่ีไดก้ ค็ ือ ผลลพั ธ์ตามตอ้ งการ และมีค่าเป็นบวก 4.) ผลบวกจากขอ้ 2. ถา้ ไมม่ ีตวั ทดตวั สุดทา้ ย กใ็ หห้ า 1’ Complement ของผลบวกน้นั ไดเ้ ท่าไร ก็คือผลลพั ธ์ตามตอ้ งการ และมีค่าเป็นลบ ตัวอย่างที่ 1.33 การลบเลขฐานสองโดยใช้ 1’ Complement ก. 110111-100101 1’ Complement ของตวั ลบ 100101 = 011010 (ขอ้ ที่ 1) (ขอ้ ที่ 2) 011110011101+ (ขอ้ ที่ 3) ตวั ทดตวั สุดทา้ ย 1 0100011+ 010010 นน่ั คือ 110111-100101 = 10010 ข. 101101-110010 1 ’ Complement ของตวั ลบ 110010 = 001101 (ขอ้ ท่ี 1) (ขอ้ ท่ี 2) 010011110011+ (ขอ้ ท่ี 4) ไมม่ ีตวั ทดตวั สุดทา้ ย 111010 หา 1 ’ Complement ของ 111010 = 000101 นน่ั คือ 101110-10111 = -101

27 1.3.2.3 การลบเลขฐานสองโดยใช้ 2 ’ Complement มีวธิ ีการดงั น้ี 1) หา 2 ’ Complement ของตวั ลบ ถา้ จาํ นวนบิตของตวั ลบมีนอ้ ยกวา่ ตวั ต้งั กต็ อ้ งทาํ จาํ นวน bit ของตวั ลบใหเ้ ทา่ กบั จาํ นวนบิตของตวั ต้งั เสียก่อน 2) นาํ ตวั ต้งั มาบวกกบั 2 ’ Complement ของตวั ลบที่ไดจ้ ากขอ้ 1. 3) ผลบวกจากขอ้ 2. ถา้ มีตวั ทดตวั สุดทา้ ย ก็ตดั ทิ้งท่ีเหลือคือผลลพั ธ์ตาม ตอ้ งการ และมีค่าเป็นบวก 4) ผลบวกจากขอ้ 2. ถา้ ไมม่ ีตวั ทดตวั สุดทา้ ย ก็ใหห้ า 2 ’ Complement ผลบวกน้นั ไดเ้ ทา่ ไร กค็ ือผลลพั ธ์ตามตอ้ งการ และมีคา่ เป็ นลบ ตัวอย่างที่ 1.34 การลบเลขฐานสองโดยใช้ 2 ’ Complement ก. 101110-10111 หา 1 ’ Complement ของตวั ลบ 010111 = 1010001+ หา 2 ’ Complement ของตวั ลบ = 110011010110+ (ขอ้ ที่ 1) (ขอ้ ที่ 2) ตวั ทดตวั สุดทา้ ย 1 010111 (ขอ้ ที่ 3) ตดั ทิง้ = 10111 นนั่ คือ 101110-10111 ข. 10111-110110 = 001001 (ขอ้ ท่ี 1) หา 1 ’ Complement ของตวั ลบ 110110 = 0010011+ (ขอ้ ที่ 2) หา 2 ’ Complement ของตวั ลบ 00110011101+ (ขอ้ ท่ี 4) ไม่มีตวั ทดตวั สุดทา้ ย = 100001 หา 1 ’ Complement ของ 100001 = 011110 หา 2 ’ Complement = 0111101+ นน่ั คือ 10111-110110 = - 11111

28


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook