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 หน่วยที่ 1 ระบบตัวเลข

หน่วยที่ 1 ระบบตัวเลข

Description: หน่วยที่ 1 ระบบตัวเลข

Search

Read the Text Version

3 ใบความรู้ เรื่อง ระบบเลขฐานและรหัส บทนํา คณิตศาสตร์ถือเป็ นวิชาหลกั ของทุกวิชาเพราะทุกวิชาในโลกน้ีตอ้ งเกี่ยวขอ้ งกบั วิชา คณิตศาสตร์หรือวิชาเลขท่ีเรารู้จกั กนั ดี มนุษยจ์ ะติดต่อส่ือสารกนั ในเชิงคณิตศาสตร์ดว้ ยเลข ฐานสิบ แต่ในระบบดิจิตอลเราจะเทียบการทาํ งานของระบบดว้ ยเลขฐานสอง ซ่ึงประกอบดว้ ยเลข 0 และ 1 และยงั นาํ เลขฐานอ่ืนมาใชอ้ ีกเช่น เลขฐานแปด เลขฐานสิบหก เพราะเลขฐานเหล่าน้ี สามารถเปล่ียนเลขฐานถึงกนั ได้ รวมท้งั มีการจบั ชุดเลขฐานสองเป็ นชุด หรือเป็ นกลุ่มเพื่อแทน ตวั เลข อกั ขระ หรือสญั ลกั ษณ์อื่นๆ เราเรียกวา่ “รหสั ” 1.1 ระบบเลขฐานสิบ ฐานสอง ฐานแปด และฐานสิบหก ระบบตัวเลขและตัวอักษรถูกมนุษย์พัฒนาข้ึน ตามยุคตามสมัย จนถึงปัจจุบัน เรามีระบบตวั เลขและตวั อกั ษรที่เป็ นสากลไวส้ ื่อสารระหว่างกนั และมนุษยก์ ็นาํ เอาศาสตร์ดา้ นน้ี มาพฒั นาสร้าง เทคโนโลยีใหม่ๆเพ่ือให้ชีวิตความเป็ นอยู่ของตนเองดีข้ึน ระบบตวั เลขท่ีเราใช้ คาํ นวณในชีวิตประจาํ วนั เราใชต้ วั เลข 10 ตวั ประกอบดว้ ย เลข 0 – 9 เรียกว่าระบบเลขฐานสิบ เป็ นระบบตวั เลขท่ีมนุษยท์ ุกคนเขา้ ใจ แต่สัญญาณทางไฟฟ้ าเชิงดิจิตอลเมื่อเทียบกบั การทาํ งาน ของสวิตช์วงจรไฟฟ้ าและอุปกรณ์อิเล็กทรอนิกส์ เช่นทรานซิสเตอร์ จะมีการทาํ งาน 2 สภาวะ คือ ON กบั OFF มนุษยจ์ ึงเชื่อมโยงเลขฐานสองซ่ึงมีตวั เลขสองตวั คือ 0 กบั 1 เขา้ กบั สภาวะ ดงั กล่าว โดยสภาวะ ON จะแทนดว้ ย 1 และสภาวะ OFF จะแทนดว้ ย 0 สาํ หรับในวงจรที่มีขนาดใหญ่และมีการทาํ งานที่สลบั ซับซอ้ นจะนาํ เอาเลขฐานสอง มาใชจ้ ะไม่สะดวกจึงนาํ เอาเลขฐานอ่ืนมาใช้ เช่น เลขฐานแปด เลขฐานสิบหก เป็นตน้ ซ่ึงผทู้ ่ีสนใจ ดา้ นน้ีจะตอ้ งเรียนรู้และเขา้ ใจระบบเลขฐานดงั กล่าว จึงจะมีความเขา้ ใจพ้ืนฐานดา้ นดิจิตอลมากข้ึน

4 1.1.1 ระบบเลขฐานสิบ ระบบเลขฐานสิบมีสัญลกั ษณ์ท่ีใชส้ ิบเลขคือ 0, 1, 2, 3, 4, 5, 6, 7, 8 และเลข 9 โดยมีคา่ ประจาํ หลกั ดงั น้ี ตารางที่ 1.1 คา่ ประจาํ หลกั ของเลขฐานสิบ 10+n 102 101 100 10-1 10-2 10-3 10-n …….. 100 10 1 ุจดทศ ินยม 0.1 0.01 0.001 …….. ตวั อยา่ งเช่น จาํ นวน 3,256.257 สามารถเขียนไดด้ งั น้ี (3×103)+(2×102)+(5×101)+(6×100) + (2×10-1)+(5×10-2)+(7×10-3) 3,000+200+50+6 +.2+.05+.007 = 3,256.25710 1.1.2 ระบบเลขฐานสอง ระบบเลขฐานสองมีสญั ลกั ษณ์ท่ีใชส้ องเลขคือ 0 กบั 1 โดยจะมีคา่ ประจาํ หลกั ดงั น้ี ตารางที่ 1.2 ค่าประจาํ หลกั ของเลขฐานสอง 2+n 22 21 20 2-1 2-2 2-3 2-n …….. 4 2 1 ุจดทศ ินยม 0.5 0.25 0.125 ……..

5 แต่ละหลกั ของเลขฐานสองจะเรียกวา่ “บิต” (Bit มาจากคาํ วา่ Binary Digit) จะเห็นวา่ บิตทางดา้ นซา้ ยมือจะมีคา่ มากกวา่ บิตทางดา้ นขวามือ โดยบิตทางดา้ นซา้ ยมือที่มีคา่ มากสุดเรียกวา่ “เอม็ เอสบี” (MSB ยอ่ มาจาก Most Significant Bit) ส่วนบิตขวามือที่มีค่านอ้ ยสุดเรียกวา่ “แอลเอสบี” (LSB ยอ่ มาจาก Least Significant Bit) รูปแบบของเลขฐานสอง เช่น 1101.112, 11011.11012, 101010.10112 เป็นตน้ 1.1.3 ระบบเลขฐานแปด ระบบเลขฐานสองแสดงถึงการทาํ งานของระบบดิจิตอลในจุดเล็กๆแต่เม่ือมีการ พฒั นาระบบดิจิตอลกม็ ีการทาํ งานท่ีซบั ซอ้ นและยงุ่ ยากมากข้ึนขอ้ มูลกม็ ีมากข้ึนตาม จึงใชเ้ ลขฐาน ท่ีสูงข้ึนในท่ีน้ีจะกล่าวถึงเลขฐานแปด ซ่ึงมีสัญลกั ษณ์ท่ีใชค้ ือเลข 0,1,2,3,4,5,6 และ7 โดยมีค่า ประจาํ หลกั ดงั น้ี ตารางท่ี 1.3 ค่าประจาํ หลกั ของเลขฐานแปด 8+n 82 81 80 8-1 8-2 8-n …….. 64 8 1 ุจดทศ ินยม 0.125 0.015625 …….. 1.1.4 ระบบเลขฐานสิบหก ดังที่กล่าวแลว้ ขา้ งตน้ ระบบดิจิตอลเม่ือมีการทาํ งานท่ีซับซ้อนขอ้ มูลย่อมมากข้ึน เลขฐานสิบหกจึงนิยมนํามาใช้ในการป้ อนคาํ สั่งโปรแกรม ซ่ึงเลขฐานสิบหกน้ีมีสัญลักษณ์ ในการใชง้ านสิบหกตวั คือ ใชต้ วั เลขสิบตวั คือ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 และตวั อกั ษรอีกหกตวั คือ A, B, C, D, E, F โดยแทน A=1010 B=1110 C=1210 D=1310 E=1410 F=1510 มีคา่ ประจาํ หลกั ดงั น้ี

6 ตารางท่ี 1.4 คา่ ประจาํ หลกั ของเลขฐานสิบหก 16+n 162 161 160 16-1 16-2 16-n …….. 256 16 1 ุจดทศ ินยม 0.0625 0.00390625 …….. 1.2 การแปลงเลขฐานสิบ ฐานสอง ฐานแปด และฐานสิบหก เลขฐานทุกฐานสามารถเปลี่ยนและเชื่อมโยงเขา้ หากนั ได้ มนุษยใ์ ชร้ ะบบเลขฐานสิบสื่อสาร ซ่ึงกนั และกนั ซ่ึงเราคน้ เคยกนั ดี แต่ในระบบดิจิตอลใชร้ ะบบเลขฐานสองเป็ นพ้ืนฐาน แต่ถา้ จะให้ เกิดความสะดวกในการศึกษาและพัฒนาระบบดิจิตอล เราจึงนําเลขฐานต่างๆเข้ามาใช้ และเช่ือมโยงกนั นนั่ เอง 1.2.1 การแปลงเลขฐานสิบ เป็ นเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก การแปลงเลขฐานสิบไปเป็ นเลขฐานสอง ฐานแปด หรื อฐานสิบหกมีวิธีการ คือ ถา้ เป็ นเลขจาํ นวนเต็มให้เอาเลขฐานน้ันมาหารเลขฐานสิบท่ีตอ้ งการแปลง โดยหารจนกว่า จะหารต่อไปอีกไม่ได้ และเศษท่ีไดจ้ ากการหารแต่ละคร้ังคือค่าท่ีแปลงเป็นเลขฐานน้นั ค่าของเศษ ที่ไดจ้ ากการหารคร้ังแรกให้เป็ นบิตหรือหลกั ต่าํ สุด (LSB) ส่วนเศษท่ีไดจ้ ากการหารคร้ังสุดทา้ ย ให้เป็ นบิตหรือหลกั สูงสุด (MSB) และกรณีค่าของเลขฐานสิบเป็ นทศนิยมมีวิธีการคือ ให้เอาเลข ฐานน้ันมาคูณเลขฐานสิบท่ีต้องการแปลง ผลลัพธ์ของการคูณท่ีเป็ นจํานวนเต็มคร้ังแรก ใหเ้ ป็นคาํ ตอบของบิตหรือหลกั สูงสุด (MSB) และผลลพั ธ์ของการคูณที่เป็นจาํ นวนเตม็ คร้ังสุดทา้ ย คือคา่ บิตหรือหลกั ต่าํ สุด (LSB) ขอยกตวั อยา่ งใหศ้ ึกษาดงั น้ี

7 ตวั อย่างท่ี 1.1 จงแปลงเลขฐานสิบคา่ 610 เป็นเลขฐานสอง LSB บิตต่าํ สุด วธิ ีทาํ 6 ÷ 2 เศษ 0 3 ÷ 2 เศษ 1 1 ÷ 2 เศษ 1 MSB บิตสูงสุด ตอบ 1102 MSB บิตสูงสุด ตัวอย่างที่ 1.2 จงแปลงเลขฐานสิบค่า 0.7510 เป็นเลขฐานสอง วธิ ีทาํ 0 . 7 5 × 2 = 1 . 5 จาํ นวนเตม็ คือ 1 0 . 5 × 2 = 1 . 0 จาํ นวนเตม็ คือ 1 LSB บิตต่าํ สุด ตอบ 0.112 LSB บิตต่าํ สุด ตวั อย่างท่ี 1.3 จงแปลงเลขฐานสิบคา่ 1710 เป็นเลขฐานแปด วธิ ีทาํ 18 ÷ 8 เศษ 1 2 ÷ 8 เศษ 2 MSB บิตสูงสุด ตอบ 218 MSB บิตสูงสุด ตวั อย่างท่ี 1.4 จงแปลงเลขฐานสิบคา่ 0.01562510 เป็นเลขฐานแปด วธิ ีทาํ 0.015625 × 8 = 0.125 จาํ นวนเตม็ คือ 0 0.125 × 8 = 1.0 จาํ นวนเตม็ คือ 1 LSB บิตต่าํ สุด ตอบ 0.018

8 ตวั อย่างที่ 1.5 จงแปลงเลขฐานสิบคา่ 19410 เป็นเลขฐานสิบหก LSB บิตต่าํ สุด วธิ ีทาํ 194 ÷ 16 เศษ 2 12 ÷ 16 เศษ 12 = C MSB บิตสูงสุด ตอบ C216 ตวั อย่างที่ 1.6 จงแปลงเลขฐานสิบคา่ 0.01562510 เป็นเลขฐานสิบหก วธิ ีทาํ 0.015625 × 16 = 0 .25 จาํ นวนเตม็ คือ 0 MSB บิตสูงสุด 0.125 × 16 = 4 .0 จาํ นวนเตม็ คือ 4 LSB บิตต่าํ สุด ตอบ 0.0416 1.2.2 การแปลงเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก เป็ นเลขฐานสิบ การแปลงเลขฐานสอง ฐานแปด หรื อฐานสิบหก เป็ นเลขฐานสิบ มีวิธีการ คือ ให้เอาเลขแต่ละตาํ แหน่งของฐานน้นั คูณดว้ ยค่าประจาํ หลกั ของเลขฐานน้ัน แลว้ นาํ ค่าที่ได้ ท้งั หมดมาบวกรวมกนั นนั่ คือ คา่ เลขฐานสิบที่แปลงได้ ดงั ตวั อยา่ ง ตวั อย่างที่ 1.7 จงแปลงเลขฐานสองค่า 101.112 เป็นเลขฐานสิบ วธิ ีทาํ 101.112 = (1×22) +(0×21) +(1×20) +(1×2-1) +(1×2-2) = 4 + 0 + 1 + 0.5 + 0.25 = 5.7510 ตอบ 5.7510

9 ตวั อย่างท่ี 1.8 จงแปลงเลขฐานแปดคา่ 61.38 เป็นเลขฐานสิบ วธิ ีทาํ 61.38 = (6×81) +(1×80) +(3×8-1) = 48 + 1 + 0.375 = 49.37510 ตอบ 49.37510 ตัวอย่างที่ 1.9 จงแปลงเลขฐานสิบหกคา่ 5E.816 เป็นเลขฐานสิบ วธิ ีทาํ 5E.816 = (5×161) +(14×160) +(8×16-1) = 80 + 14 + 0.5 = 94.510 ตอบ 94.510 1.2.3 การแปลงเลขระหว่างฐานสอง กบั เลขฐานแปด ในหัวขอ้ น้ี มีหลกั การอยวู่ ่า เลขฐานสอง 3 ตวั แทนเลขฐานแปด 1 ตวั ถา้ แปลง เลขฐานสองเป็ นเลขฐานแปดที่เป็ นจาํ นวนเตม็ ให้จดั ชุดเลขฐานสองชุดละ 3 ตวั โดยนบั จาก จุดทศนิยมมาทางซา้ ยชุดสุดทา้ ยถา้ ไม่ครบ 3 ตวั ใหใ้ ส่ศูนยแ์ ทนจนครบ 3 ตวั เพื่อกนั ความสบั สน ถา้ เป็ นทศนิยมใชห้ ลกั การเดียวกนั แต่ให้จดั ชุดโดยนับจากจุดทศนิยมมาทางขวาในทางกลบั กนั ถา้ แปลงเลขฐานแปดเป็ นเลขฐานสองก็ให้แทนเลขฐานแปด 1 ตวั ดว้ ยเลขฐานสอง 3 ตวั เขียนใหต้ รงตามตาํ แหน่งของเลขน้นั ๆดงั แสดงตามตวั อยา่ งต่อไปน้ี ตวั อย่างท่ี 1.10 จงแปลงเลขฐานสองคา่ 11110110101.11011012 เป็นเลขฐานแปด วธิ ีทาํ (011) (110) (110) (101) . (110) (110) (100) 3 6 6 5 .6 6 4 ตอบ 3665.6648

10 ตวั อย่างที่ 1.11 จงแปลงเลขฐานแปดค่า 325.478 เป็นเลขฐานสอง วธิ ีทาํ 3 2 5 . 4 7 (011) (010) (101) . (100) (111) ตอบ 011010101.1001112 1.2.4 การแปลงเลขระหว่างฐานสอง กบั เลขฐานสิบหก เลขฐานสอง 4 ตวั เท่ากบั เลขฐานสิบหก 1 ตวั ดงั น้ันการแปลงเลขฐานสอง เป็ นเลขฐานสิบหก ใชห้ ลกั การเดียวกนั กบั การแปลงเลขฐานสองเป็ นเลขฐานแปด เพียงแต่จดั ชุด เลขฐานสอง 4 ตวั แทนเลขฐานสิบหก 1 ตวั เท่าน้นั แสดงดงั ตวั อยา่ งต่อไปน้ี ตวั อย่างท่ี 1.12 จงแปลงเลขฐานสองคา่ 101110100101.01011012 เป็นเลขฐานสิบหก วธิ ีทาํ (1011) (1010) (0101) . (0101) (1010) B A 5 .5 A ตอบ BA5.5A16 ตวั อย่างท่ี 1.13 จงแปลงเลขฐานสิบหกคา่ 7D8.C916 เป็นเลขฐานสอง วธิ ีทาํ 7 D 8 . C 9 (0111) (1101) (1000) . (1100) (1001) ตอบ 011111011000.110010012

11 1.2.5 การแปลงเลขระหว่างฐานแปด กบั เลขฐานสิบหก การแปลงเลขฐานแปดเป็ นเลขฐานสิ บหกและการแปลงเลขฐานสิ บหก เป็ นเลขฐานแปดมีหลักการแปลง คือ ให้แปลงเลขฐานน้ันเป็ นเลขฐานสองก่อน แลว้ แปลง เลขฐานสองท่ีไดเ้ ป็นเลขฐานท่ีตอ้ งการ แสดงดงั ตวั อยา่ งต่อไปน้ี ตวั อย่างท่ี 1.14 จงแปลงเลขฐานแปดคา่ 437.658 เป็นเลขฐานสิบหก วธิ ีทาํ 4 3 7 . 6 5 (011) (010) (101) . (100) (111) แปลงเป็ นเลขฐานสอง (1101) (0101) . (1001) (1100) จดั ชุดละ 4 บิต D5 9C ตอบ D5.9C16 ตวั อย่างที่ 1.15 จงแปลงเลขฐานสิบหกค่า 9AB.3E16 เป็นเลขฐานแปด วธิ ีทาํ 9 A B . 3 E (1001) (1010) (1011) . (0011) (1110) แปลงเป็ นเลขฐานสอง (100)(110) (101)(011) . (001) (111)(100) จดั ชุดละ 3 บิต 4653 174 ตอบ 4653.1748

12 ตารางที่ 1.5 ค่าเลขฐานต่างๆ เลขฐานสิบ เลขฐานสอง เลขฐานแปด เลขฐานสิบหก 0 0000 1 0 1 0001 2 1 2 0010 3 2 3 0011 4 3 4 0100 5 4 5 0101 6 5 6 0110 7 6 7 0111 10 7 8 1000 11 8 9 1001 12 9 10 1010 13 A 11 1011 14 B 12 1100 15 C 13 1101 16 D 14 1110 17 E 15 1111 20 F

13 1.3 การคาํ นวณเลขฐานสอง เน่ืองจากเลขฐานสองเป็นพ้ืนฐานสาํ คญั ของระบบดิจิตอลจึงขอกล่าวถึงวิธีการคาํ นวณหาค่า การบวก การลบ การคูณ และการหาร เลขฐานสอง ซ่ึงมีวิธีการดงั ต่อไปน้ี 1.3.1 การบวกและการลบเลขฐานสอง ก า ร บ ว ก แ ล ะ ก า ร ล บ เ ล ข ฐ า น ส อ ง มี วิ ธี ก า ร เ ห มื อ น กับ ก า ร บ ว ก ล บ เ ล ข ฐ า น สิ บ ที่เราคุน้ เคยเพียงต่างกนั ท่ีการยืม เลขฐานสิบค่าของการยมื จะไดค้ ร้ังละสิบ แต่ถา้ เป็ นเลขฐานสอง คา่ ของการยมื กจ็ ะไดค้ ร้ังละสอง ซ่ึงมีหลกั เกณฑส์ รุปดงั ตารางขา้ งล่างน้ี ตารางท่ี 1.6 การบวกเลขฐานสอง การบวกเลขฐานสอง ตวั ต้งั ตวั บวก ผลลพั ธ์ ตวั ทด 00 0 0 01 1 0 10 1 0 11 0 1 การบวกเลขฐานสอง 1+1 เท่ากบั 2 ของเลขฐานสิบ แต่เท่ากบั 10 ของเลขฐานสอง เราจึงไดผ้ ลลพั ธ์เป็น 0 แลว้ ทด 1 เพ่ือนาํ ไปบวกกบั หลกั ถดั ไป แสดงดงั ตวั อยา่ ง

14 ตวั อย่างท่ี 1.16 จงบวกเลขฐานสอง 110112 + 111012 วธิ ีทาํ 1 1 0 1 1 +  1110 1 ตอบ 1 1 1 0 0 02 ตัวอย่างท่ี 1.17 จงบวกเลขฐานสอง 100112 + 101002 วธิ ีทาํ 1 0 0 1 1 +  10100 ตอบ 1 0 0 1 1 12 การลบเลขฐานสอง 0 – 1 ตวั ต้งั มีค่านอ้ ยกว่าตวั ลบ จึงตอ้ งไปยมื หลกั หนา้ มา 1 ในการยมื แต่ละคร้ังของเลขฐานสองมีค่าเท่ากบั 2 เมื่อนาํ มาลบกบั ตวั ลบคือ 1 จึงไดผ้ ลลพั ธ์เป็น 1 และอยา่ ลืมหกั หลกั ท่ีถูกยมื ออกอีก 1 ดว้ ย แสดงดงั ตวั อยา่ ง ตารางที่ 1.7 ตารางการลบเลขฐานสอง การลบเลขฐานสอง ตวั ต้งั ตวั ลบ ผลลพั ธ์ ตวั ยมื 00 0 0 01 1 1 10 1 0 11 0 0

15 ตวั อย่างท่ี 1.18 จงลบเลขฐานสอง 111012 – 101102 วธิ ีทาํ 1 1 1 0 1 –  10110 ตอบ 0 0 1 1 12 ตวั อย่างท่ี 1.19 จงลบเลขฐานสอง 100012 – 11102 วธิ ีทาํ 1 0 0 0 1 – 1110 ตอบ 0 0 0 1 12 1.3.2 การคูณและการหารเลขฐานสอง การคูณและการหารเลขฐานสองใช้หลักการเดียวกันกับการคูณและการหาร เลขฐานสิบเพียงแต่เลขฐานสองมีเพียงสองเลขคือ 0 กบั 1 ผลลพั ธ์ก็มีเพียงสองเลขคือ 0 กบั 1 แสดงดงั ตวั อยา่ ง ตัวอย่างที่ 1.20 จงหาผลลพั ธต์ ่อไปน้ี (ก) 110112 × 1012 (ข) 10012 ÷ 112

16 วธิ ีทาํ (ก) 11011 วธิ ีทาํ (ข) × 101 11011 0 0 0 0 0 +  11011 ตอบ 1 0 0 0 0 1 1 12 11 11  1001 ‐  11  11  ‐  11  00  ตอบ 112 1.4 การคอมพลเี มนต์เลขฐานสอง การกระทาํ ทางคณิตศาสตร์ เป็ นกระบวนการท่ีมีความจาํ เป็ นอย่างยิ่งท่ีระบบดิจิตอล ใช้ในการประมวลผล แต่เลขฐานสองเป็ นพ้ืนฐานสําคญั ของการทาํ งาน ซ่ึงจะถูกออกแบบมา ให้ใชว้ ิธีการคาํ นวณหาค่า การบวก การลบ การคูณ หรือการหาร โดยวิธีการบวกหรือลบอยา่ งใด อยา่ งหน่ึง แต่ส่วนใหญ่จะใชว้ ิธีการบวกมากว่า เนื่องจากวิธีการบวกสามารถหาค่าการลบ การคูณ และการหารไดด้ ว้ ยวิธีการคอมพลีเมนต์ การทาํ คอมพลีเมนตเ์ ลขฐานสองมี 2 รูปแบบ คือ 1. รูปแบบ 1’S Complement (อ่านวา่ วนั คอมพลีเมนต)์ 2. รูปแบบ 2’S Complement (อ่านวา่ ทู คอมพลีเมนต)์

17 การทาํ คอมพลีเมนต์เลขฐานสองแบบ 1’S Complement คือ การกลบั สถานะ ของตวั เลขฐานสองเป็ นสถานะตรงกนั ขา้ มจากสถานะเดิม เช่น เดิมเป็ นสถานะ 0 จะเปลี่ยนเป็ น สถานะ 1 และถา้ เดิมเป็นสถานะ 1 จะเปลี่ยนเป็นสถานะ 0 การทาํ คอมพลีเมนต์เลขฐานสองแบบ 2’S Complement คือ การนําผล ของ 1’S Complement บวกดว้ ย 1 ผลลพั ธท์ ่ีไดค้ ือ 2’S Complement นน่ั เอง 1.4.1 การลบเลขฐานสองด้วยวธิ ี 1’S Complement มีข้นั ตอนดงั น้ี 1. ถา้ บิตของตวั ลบนอ้ ยกว่าตวั ต้งั ใหเ้ ติม 0 ดา้ นซา้ ยของบิตตวั ลบใหเ้ ท่ากบั บิตตวั ต้งั แลว้ ทาํ 1’S Complement ของบิตตวั ลบ 2. นาํ คา่ ตวั ลบที่ทาํ 1’S Complement แลว้ มาบวกกบั ค่าตวั ต้งั 3. ผลลพั ธท์ ่ีไดจ้ ากการบวกขอ้ 2 - ถา้ ไม่มีตวั ทด ใหน้ าํ ผลลพั ธ์น้นั มาทาํ 1’S Complementอีกคร้ัง ผลจากการทาํ 1’S Complement น้ีคือคาํ ตอบ แต่มีคา่ เป็นลบ - ถ้ามีตวั ทด ให้นําตัวทดไปบวกเขา้ กับบิตขวามือสุดอีกคร้ังผลลัพธ์ท่ีได้ คือ คาํ ตอบ และมีค่าเป็นบวก ตวั อย่างท่ี 1.21 จงลบเลขฐานสองต่อไปน้ี ดว้ ยวธิ ี 1’S Complement (ก) 101012 – 10012 (ข) 1011012 - 1101102 วธิ ีทาํ (ก) 101012 – 10012 จากโจทยจ์ ะเห็นวา่ ตวั ลบมีจาํ นวนบิตนอ้ ยกวา่ ตวั ต้งั จึงตอ้ งเติม 0 บิตซา้ ยมือของตวั ลบ หน่ึงตวั แลว้ ดาํ เนินการตามข้นั ตอนไดด้ งั น้ี - ตวั ลบ = 10012 เติม 0 จะได้ 010012 ทาํ 1’S Complementจะได้ 101102

18 - นาํ มาบวกกบั ตวั ต้งั จะได้ 10101 + 10110 ตวั ทด 1 01011 - นาํ ตวั ทดมาบวก + 1 - ผลลพั ธ์ท่ีไดม้ ีค่าเป็นบวก 1100 ตอบ 11012 วธิ ีทาํ (ข) 1011012 - 1101102 จากโจทยจ์ ะไดด้ งั น้ี - ทาํ 1’S Complement ตวั ลบ จะได้ 001001 - นาํ มาบวกกบั ตวั ต้งั จะได้ 101101 + 001001 - ตวั ทดไม่มี 110110 - ทาํ 1’S Complementจะได้ 001001 - ค่าที่ไดจ้ ะมีคา่ เป็นลบ -001001 ตอบ -10012

19 1.4.2 การลบเลขฐานสองด้วยวธิ ี 2’S Complement เพื่อเป็นการลดขอ้ ยงุ่ ยากจากวิธีการ 1’S Complement ของการบวกตวั ทด จึงใชว้ ิธี 2'S Complement ซ่ึงมีวิธีการดงั น้ี 1. นาํ คา่ ตวั ลบมาทาํ 2’S Complement 2. นาํ ค่าตวั ลบที่ทาํ 2’S Complement แลว้ มาบวกกบั คา่ ตวั ต้งั 3. ผลลพั ธท์ ี่ไดจ้ ากการบวกขอ้ 2 - ถา้ ไม่มีตวั ทด ให้นาํ ผลลพั ธ์น้นั มาทาํ 2’S Complementอีกคร้ัง ผลจาก การทาํ 2’S Complement น้ีคือคาํ ตอบแต่ มีคา่ เป็นลบ - ถา้ มีตวั ทด ใหต้ ดั ตวั ทดทิ้งไป ผลลพั ธท์ ่ีไดค้ ือ คาํ ตอบ และ มีคา่ เป็นบวก ตวั อย่างที่ 1.22 จงลบเลขฐานสองต่อไปน้ี ดว้ ยวธิ ี 2’S Complement (ก) 101012 - 10012 (ข) 1011012 - 1101102 วธิ ีทาํ (ก) 101012 - 10012 - ทาํ 2’S Complement ของตวั ลบจะได้ 10111 - นาํ ค่าตวั ต้งั และตวั ลบบวกเขา้ ดว้ ยกนั 1 0 1 0 1 + 10111 - ผลลพั ธม์ ีตวั ทดใหต้ ดั ทิ้งไป 1 0 1 1 0 0 - ผลลพั ธท์ ี่ไดม้ ีคา่ เป็นบวก 01100 ตอบ 11012

20 วธิ ีทาํ (ข) 1011012 - 1101102 จากโจทยจ์ ะไดด้ งั น้ี - ทาํ 2’S Complement ตวั ลบ จะได้ 001010 - นาํ มาบวกกบั ตวั ต้งั จะได้ 101101 +  001010 - ตวั ทดไม่มี 110111 - ทาํ 2’S Complement จะได้ 001001 - ค่าที่ไดจ้ ะมีคา่ เป็นลบ -001001 ตอบ -10012 1.5 รหัสในระบบดจิ ิตอล การจดั ชุดขอ้ มูลเลขฐานสอง 0 หรือ 1 เขา้ ดว้ ยกนั ให้เป็ นกลุ่มแลว้ แทนเลขใดเลขหน่ึง เรี ยกว่า รหัส (Code) ในการรวมกลุ่มของเลขฐานสองจะมีคําจํากัดความของกลุ่มน้ันๆ แตกต่างกนั ดงั น้ี 1. บิต (bit) คือ เลข 0 หรือ 1 ของเลขฐานสอง 2. นิบเบิล (Nibble) คือ กลุ่มเลขฐานสองจาํ นวน 4 บิต 3. ไบต์ (Byte) คือ กลุ่มเลขฐานสองจาํ นวน 8 บิต หรือ 2 นิบเบิลส์ 4. เวริ ์ด (Word) หรือ คาํ คือ กลุ่มเลขฐานสองจาํ นวน 2 ไบต์ รหัสในระบบดิจติ อลสามารถแบ่งออกได้เป็ น 2 ประเภทคอื 1. รหัสมีน้ําหนัก (Weighted Code) เป็ นรหัสเลขฐานสองท่ีกําหนด ใหม้ ีค่าประจาํ ตาํ แหน่งของแต่ละบิต เช่น รหสั บีซีดี (Binary Coded Decimal) 2. รหัสไม่มีน้าํ หนัก (Non - Weighted Code) เป็ นรหัสเลขฐานสอง ท่ีไม่ไดก้ าํ หนดใหม้ ีค่าประจาํ ตาํ แหน่งของแต่ละบิต เช่น รหสั เกรย์ (Gray Code)

21 1.6 รหัสบซี ีดี รหัสบีซีดี (Binary Coded Decimal) จดั เป็ นรหัสที่มีน้าํ หนกั น่นั คือบิตแต่ละบิตจะมีค่า ประจาํ ตาํ แหน่งของแต่ละบิตอยู่ รหสั บีซีดีจะแยกเป็ นชุดในหน่ึงชุดของรหสั บีซีดีจะมี 4 บิต ใน เลขฐานสิบ ฐานสิบหก และ 3 บิต ในเลขฐานแปด ดงั น้นั รหสั บีซีดีจะแทนเลขฐานสิบ ฐานแปด และฐานสิบหก ไดด้ งั ตาราง ตารางที่ 1.8 รหสั บีซีดีกบั เลขฐาน รหสั บีซีดี เลขฐานสิบ เลขฐานแปด เลขฐานสิบหก 0000 00 0 0001 11 1 0010 22 2 0011 33 3 0100 44 4 0101 55 5 0110 66 6 0111 77 7 1000 8 8 1001 9 9

22 ตารางที่ 1.8 รหสั บีซีดีกบั เลขฐาน (ต่อ) รหสั บีซีดี เลขฐานสิบ เลขฐานแปด เลขฐานสิบหก 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F ตวั อย่างที่ 1.23 จงแปลงเลขต่อไปน้ีเป็นรหสั บีซีดี (ก) 4710 (ข) 328 (ค) A916 วิธีทํา จัดชุดของแต่ละตัวตามค่าในตารางนําค่าที่ได้เขียนเรียงต่อกันตามตาํ แหน่งของหลัก จะไดด้ งั น้ี (ก) 4 7 0100 0111 ตอบ 01000111BCD (ข) 3 2 0011 0010 ตอบ 00110010BCD

23 (ค) A 9 1010 1001 ตอบ 10101001BCD 1.7 รหัสเกนิ 3 รหัสเกิน3 เป็ นรหัสที่มีค่าเกินกว่ารหัสบีซีดีอยู่หลกั ละ3 เช่น รหัสบีซีดีเท่ากับ 1001 ค่าของรหสั เกิน 3 จะมีค่าเท่ากบั 1100 แสดงดงั ตารางเปรียบเทียบขา้ งล่าง ตารางท่ี 1.9 เปรียบเทียบรหสั เกิน 3 เลขฐานสิบ รหสั บีซีดี รหสั เกิน 3 0 0000 0011 1 0001 0100 2 0010 0101 3 0011 0110 4 0100 0111 5 0101 1000 6 0110 1001 7 0111 1010 8 1000 1011 9 1001 1100

24 ตวั อย่างที่ 1.24 จงแปลงเลขค่า 1001 เป็นรหสั เกิน 3 วธิ ีทาํ 1 0 0 1 บวกเพิม่ อีก3 + 0011 ตอบ 1 1 0 0 1.8 รหัสเกรย์ รหสั เกรย์ (Gray Code) นิยมนาํ มาใชใ้ นระบบควบคุมกลไกลเชิงแกนหมุนเพื่อบอกตาํ แหน่ง ของเพลาหมุน เป็ นรหัสท่ีไม่มีน้าํ หนักในตวั ซ่ึงมีหลกั ในการเปล่ียนเลขฐานสองเป็ นรหัสเกรย์ และเปล่ียนจากรหสั เกรยเ์ ป็นเลขฐานสองดงั น้ี 1. การเปลย่ี นเลขฐานสองเป็ นรหัสเกรย์ - นาํ เลขฐานสองมาเขียนเรียงกนั โดยเวน้ ช่องวา่ งพอประมาณ - ดึงบิตสูงสุดลงมา (MSB) - บวกบิตMSBกบั บิตถดั ไปทางขวามือใส่ค่าท่ีไดโ้ ดยตดั ตวั ทดทิ้ง - บวกบิตรองจาก MSB กบั บิตถดั ไปทางขวามือใส่ค่าท่ีไดโ้ ดยตดั ตวั ทดทิ้งเช่นกนั ทาํ เช่นน้ีไปจนถึงบิต LSB - นาํ ค่าที่ไดเ้ ขียนเรียงต่อกนั นน่ั คือคาํ ตอบ ตวั อย่างที่ 1.25 จงแปลงเลขฐานสองต่อไปน้ีเป็นรหสั เกรย์ (ก) 10112 (ข) 101011012 วธิ ีทาํ (ก) ฐานสอง MSB LSB ตอบ 1+0+1+1 1 11 0

25 วธิ ีทาํ (ข) ฐานสอง MSB LSB 1+0+1+0+1+1+0 +1 ตอบ 1 1 1 1 1 0 1 1 2. การเปลยี่ นรหัสเกรย์เป็ นเลขฐานสอง - นาํ เลขฐานสองมาเขียนเรียงกนั โดยเวน้ ช่องวา่ งพอประมาณ - ดึงบิตสูงสุดลงมา (MSB) - บวกบิตMSBท่ีดึงลงมากบั บิตถดั ไปทางขวามือใส่ค่าท่ีไดโ้ ดยตดั ตวั ทดทิ้ง - บวกผลลพั ธ์ที่ไดก้ บั บิตถดั ไปทางขวามือใส่ค่าท่ีไดโ้ ดยตดั ตวั ทดทิ้งเช่นกนั ทาํ เช่นน้ีไปจนถึงบิต LSB - นาํ คา่ ท่ีไดเ้ ขียนเรียงต่อกนั นน่ั คือคาํ ตอบ ตัวอย่างท่ี 1.26 จงแปลงรหสั เกรยต์ ่อไปน้ีเป็นเลขฐานสอง (ก) 1110 (ข) 11111011 วธิ ีทาํ (ก) รหสั เกรย์ MSB LSB ตอบ 1 110 +++ 1 01 1 วธิ ีทาํ (ข) รหสั เกรย์ MSB LSB ตอบ 1 111 101 1 +++ + ++ + 101 0 110 1

26 1.9 รหัสแอสกี รหสั แอสกี (American Standard Code for Information Interchange) เป็นการเรียกคาํ ยอ่ จากคาํ เตม็ จะได้ ASCII อ่านวา่ แอสกี นนั่ เอง รหสั แอสกีเป็นรหสั มาตรฐานของอเมริกนั ที่ใชแ้ ทน ตวั อกั ษร ตวั เลข ตวั อกั ขระต่างๆใชต้ ิดต่อส่ือสารระหว่างเคร่ืองไมโครคอมพิวเตอร์กบั อุปกรณ์ อินพุทเอาทพ์ ุทต่างๆ เช่น คียบ์ อร์ดจอแสดงผล เคร่ืองพิมพ์ รหัสแอสกีมีขนาด7บิต เราสามารถ ถอดรหัสแอสกีได้จากตารางรูปที่1.10โดยนําค่าบิตจากตารางมาเขียนเรียงต่อกัน ดังตัวอย่าง ต่อไปน้ี ตวั อกั ษร P ขอ้ มูลจากตาราง รหสั แอสกี Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 1010000 ตวั อย่างที่ 1.27 จากตารางจงหาคา่ ของรหสั แอสกีของคาํ วา่ DIGITAL วธิ ีทาํ D IG I T A L ตอบ 1000100 1001001 1000111 1001001 1010100 1000001 1001100 ตวั อย่างท่ี 1.28 จากตารางจงหาคา่ ของรหสั แอสกีของคาํ วา่ Sunday วธิ ีทาํ S und ay ตอบ 1010011 1110101 1101110 1100100 1100001 1111001

27 ตารางที่ 1.10 รหสั แอสกี B7→ 0 0 00111 1 0 0 11001 1 ASCII B6→ 0 1 01010 1 B5→ 0 1 23456 7 Col B4 B3 B2 B1 Rol 0 0 0 0 0 NUL DLE SP 0 @ P ' p 0 0 0 1 1 SOH DC1 ! 1 A Q a q 0 0 1 0 2 STX DC2 \" 2 B R b r 0 0 1 1 3 ETX DC3 # 3 C S c s 0 1 0 0 4 EOT DC4 $ 4 D T d t 0 1 0 1 5 ENQ NAK % 5 E U e u 0 1 1 0 6 ACK SYN & 6 F V f v 0 1 1 1 7 BEL ETB ' 7 G W g w 1 0 0 0 8 BS CAN ( 8 H X h x 1 0 0 1 9 HT EM ) 9 I Y i y 1 0 1 0 10 LF SUB * : J Z j z 1 0 1 1 11 VT ESC + ; K [ k { 1 1 0 0 12 FF FS , < L \\ l | 1 1 0 1 13 CR GS - = M ] m } 1 1 1 0 14 SO RS . > N ^ n ~ 1 1 1 1 15 SI US / ? O _ o DEL ท่ีมา : ไวพจน์ ศรีธญั , 2547, หนา้ 37


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