Transcript 1 1 0 1 0 1
บทที่ 7 การคานวณเลขฐานและและการแทนรหัสข้ อมูล การคานวณเลขฐาน (CALCULATE BASE NUMBER) การคานวณเลขฐานเป็ นการคานวณเลขฐานต่างๆ ซึง่ เป็ นการ คานวณในการบวกเลขฐาน และการคานวณในการลบเลขฐาน เช่นการบวกและลบของเลขฐานสอง การบวกและลบของเลขฐาน แปด การบวกและลบของเลขฐานสิบ และการบวกและลบของ เลขฐานสิบหกเป็ นต้ น การบวกเลขฐานสอง เลขฐานแปด เลขฐานสิบหก หลักการคานวณพื ้นฐานในการบวกของเลขฐานสอง เลขฐาน แปด และเลขฐานสิบหากหรื อเลขฐานต่างๆ จะกระทาคล้ ายกัน กับการคานวณเลขฐานสิบที่เรานิยมใช้ ถ้ ากระทาการบวกได้ เกิน เลขฐานให้ ทาการทดไปยังบิตที่มีนยั สาคัญสูงกว่าถัดไป เพื่อใช้ ใน การคานวณในส่วนของบิตที่มีนยั สาคัญสูงกว่าถัดไป หลักการบวกเลขฐานสอง เลขฐานแปด เลขฐานสิบหก 1. ให้ บวกเลขแต่ละหลักตามปกติเหมือนการบวกเลขฐานสิบ 2. ถ้ าผลบวกได้ ไม่เกินเลขฐาน ให้ ใส่ผลบวกที่ได้ เป็ นผลลัพธ์ 3. ถ้ าผลบวกได้ เท่ากันกับเลขฐานหรื อเกินเลขฐานนัน้ ให้ ใส่ ผลลัพธ์ของค่าผลบวกของเลขฐานที่เกินเลขฐานนันแล้ ้ วทดค่าไป ยังบิตถัดไป (ทดไปยังบิตที่มีนยั สาคัญสูงกว่า: MSD) ตัวอย่ างที่ 7.1 ให้ ทาการบวกเลขฐานดังนี ้ (6547)10 + (1234)10 วิธีทา 6547 + 1234 7781 คาตอบคือ (6547)10 + (1234)10 = (7781)2 ตัวอย่ างที่ 7.2 ให้ ทาการบวกเลขฐานดังนี ้ (1111)2 + (1011)2 วิธีทา 1111 + 1011 11010 คาตอบคือ (1111)2 + (1011)2 = (11010)2 ตัวอย่ างที่ 7.3 ให้ ทาการบวกเลขฐานดังนี ้ (375)8 + (421)8 วิธีทา 375 + 421 1016 คาตอบคือ (375)8 + (421)8 = (1016)8 ตัวอย่ างที่ 7.4 ให้ ทาการบวกเลขฐานดังนี ้ (235A)16 + (3B71)16 วิธีทา 235A + 3B71 5ECB คาตอบคือ (235A)16 + (3B71)16 = (5ECB)16 ตัวอย่ างที่ 7.5 ให้ ทาการบวกเลขฐานดังนี ้ (1234)8 + (55)16 = (?)8 วิธีทา แปลง (55)16 ให้ อยูใ่ นรูปแบบของเลขฐานแปด (55)16 = (01010101)2 = (125)8 1234 + 125 1361 คาตอบคือ (1234)8 + (55)16 = (1361)8 การลบเลขฐานสอง เลขฐานแปด เลขฐานสิบหก หลักการคานวณพื ้นฐานในการลบของของเลขฐานสอง เลขฐาน แปด และเลขฐานสิบหากหรื อเลขฐานต่างๆ จะกระทาคล้ ายกัน กับการคานวณเลขฐานสิบที่เรานิยมใช้ ถ้ าตัวตังน้ ้ อยกว่าตัวลบ จะไม่สามารถกระทาการลบได้ ดังนันจึ ้ งจาเป็ นต้ องยืมตัวยืมที่อยู่ ในบิตที่มีนยั สาคัญสูงกว่ามาทีละหนึง่ บิต จึงจะสามารถทาการ ลบได้ หลักการลบเลขฐานสอง เลขฐานแปด เลขฐานสิบหก 1. กรณีหลักตัวตังเท่ ้ ากันหรื อมากกว่าให้ ลบตามปกติ 2. กรณีที่หลักตัวตังน้ ้ อยกว่าตัวลบ จะต้ องมีการยืม โดยการยืมแต่ละครัง้ มี หลักเกณฑ์คือ ให้ ยืมตัวที่บิตที่มีนยั สาคัญสูงกว่ามา 1 บิต (ยืมบิตที่มีบิต นัยสาคัญสูงกว่าถัดไป) ตัวที่ยืมจะมีคา่ ลดลงไป 1 ค่า โดยค่าที่ยืมมาจะมี ค่าเท่ากับค่าของเลขฐานนัน้ (เช่นเลขฐานสิบค่าที่ยืมเข้ ามาจะมีคา่ เท่ากับ 10 เลขฐานสองค่าที่ยืมเข้ ามาจะมีคา่ เท่ากับ 2 เลขฐานแปดค่าที่ยืมเข้ ามา จะมีคา่ เท่ากับ 8 และเลขฐานสิบหกค่าที่ยืมเข้ ามาจะมีคา่ เท่ากับ 16) จากนันให้ ้ นาค่าที่ยืมเข้ ามาไปบวกกับตัวตัง้ ได้ เท่าไรก็ให้ นามาลบออกกับ ตัวลบ ก็จะได้ ผลลัพธ์ตามต้ องการ ตัวอย่ างที่ 7.6 ให้ ทาการลบเลขฐานดังนี ้ (9211)10 – (1234)10 วิธีทา 9211 1234 7977 คาตอบ (9211)10 – (1234)10 = (7977)10 ตัวอย่ างที่ 7.7 ให้ ทาการลบเลขฐานดังนี ้ (1101)2 – (1011)2 วิธีทา 1101 1011 0010 คาตอบ (1101)2 – (1011)2 = (0010)2 ตัวอย่ างที่ 7.8 ให้ ทาการลบเลขฐานดังนี ้ (6753)8 – (5736)8 วิธีทา 6753 5736 1015 คาตอบ (6753)8 – (5736)8 = (1015)8 ตัวอย่ างที่ 7.9 ให้ ทาการลบเลขฐานดังนี ้ (77AE)16 – (5B0F)16 วิธีทา 77AE 5B0F 1C9F คาตอบ (77AE)16 – (5B0F)16 = (1C9F)16 ตัวอย่ างที่ 7.10 ให้ ทาการบวกเลขฐานดังนี ้ (1234)8 - (55)16 = (?)8 วิธีทา แปลง (55)16 ให้ อยู่ในรูปแบบของเลขฐานแปด (55)16 = (01010101)2 = (125)8 1234 125 1107 คาตอบคือ (1234)8 + (55)16 = (1107)8 ตัวอย่ างที่ 7.11 ให้ ทาการคานวณเลขฐานดังนี ้ (1234)8 - (55)16 + (110101)2 = (?)2 วิธีทา แปลง (1234)8 ให้ อยู่ในรูปแบบของเลขฐานสอง (1234)8 = (001010011100)2 แปลง (55)16 ให้ อยู่ในรูปแบบของเลขฐานสอง (55)16 = (01010101)2 001010011100 01010101 1001000111 + 110101 1001111100 คาตอบคือ (1234)8 - (55)16 + (110101)2 = (1001111100)2 การลบเลขฐานสองโดยใช้ ส่วนเติมเต็ม (COMPLEMENT) หลักการคานวณพื ้นฐานของคอมพิวเตอร์ ในการลบสามารถกระทาได้ หลายวิธีดงั เช่นการใช้ สว่ นเติมเต็มหรื อคอมพลีเม้ น เนื่องจากบางระบบ คอมพิวเตอร์ จะทาการลดวงจรบางอย่างออกไป ถ้ าสร้ างวงจรบวก และ วงจรลบ ก็หมายความว่าจะต้ องสร้ างทังวงจรบวกและลบ ้ แต่ถ้าต้ องการ ประหยัดวงจบลบ ก็จะสามารถตัดวงจรลบทิ ้งไปแต่จะใช้ วงจรบวกเพียง อย่างเดียวในการคานวณการลบเลขฐานโดยจะใช้ วงจรบวกและส่วนเติม เต็มในการคานวณการลบของระบบนัน้ โดยส่วนเติมเต็มในระบบ เลขฐานสองจะมีอยู่ 2 แบบ คือ 1’s ส่วนเติมเต็ม (1’s Complement) และ 2’s ส่วนเติมเต็ม (2’s Complement) หลักการลบเลขฐานโดยใช้ 1’S ส่ วนเติมเต็ม 1. ให้ ทาการกลับบิตทุกหลักของตัวลบ เช่นจาก “0” กลายเป็ น “1” จาก “1” กลายเป็ น “0” 2. ให้ ทาการบวกตัวตังและตั ้ วลบที่ทาการกลับบิต 3. ถ้ าบวกกันมีบิตตัวทด ในตาแหน่งนัยสาคัญสูงสุด แสดงว่าคาตอบที่ได้ จะมีคา่ เป็ นบวก จากนันให้ ้ ทาการบวกคาตอบกับบิตตัวทด จะได้ คาตอบ ออกมา 4. ถ้ าบวกกันแล้ วไม่มีบิตตัวทด ในตาแหน่งนัยสาคัญสูงสุด แสดงว่า คาตอบที่ได้ จะมีคา่ เป็ นลบ จากนันให้ ้ ทาการกลับบิตผลลัพธ์ทงหมด ั้ จะได้ คาตอบออกมา ตัวอย่ างที่ 7.12 ให้ ทาการคานวณเลขฐานดังนี ้ (11011)2 - (10111)2 วิธีทา แปลง (10111)2 โดยใช้ 1’s ส่วนเติมเต็ม (10111)2 = (01000)2 11011 + 01000 100011 + 1 00100 คาตอบคือ (11011)2 - (10111)2 = (00100)2 ตัวอย่ างที่ 7.13 ให้ ทาการคานวณเลขฐานดังนี ้ (101101)2 - (110010)2 วิธีทา แปลง (110010)2 โดยใช้ 1’s ส่วนเติมเต็ม (110010)2 = (001101)2 101101 + 001101 0111010 กลับบิต -000101 คาตอบคือ (101101)2 - (110010)2 = (-101)2 หลักการลบเลขฐานโดยใช้ 2’S ส่ วนเติมเต็ม 1. ให้ ทาการกลับบิตทุกหลักของตัวลบ เช่นจาก “0” กลายเป็ น “1” จาก “1” กลายเป็ น “0” จากนันบวกด้ ้ วย “1” 2. ให้ ทาการบวกตัวตังและตั ้ วลบที่ทาการกลับบิต 3. ถ้ าบวกกันมีบิตตัวทด ในตาแหน่งนัยสาคัญสูงสุด แสดงว่าคาตอบที่ได้ จะมีคา่ เป็ นบวก จากนันให้ ้ ทาการตัดบิตตัวทดทิ ้ง จะได้ คาตอบออกมา 4. ถ้ าบวกกันแล้ วไม่มีบิตตัวทด ในตาแหน่งนัยสาคัญสูงสุด แสดงว่า คาตอบที่ได้ จะมีคา่ เป็ นลบ จากนันให้ ้ ทาการกลับบิตผลลัพธ์ทงหมด ั้ จากนันบวกด้ ้ วย “1” จะได้ คาตอบออกมา ตัวอย่ างที่ 7.14 ให้ ทาการคานวณเลขฐานดังนี ้ (11011)2 - (10111)2 วิธีทา แปลง (10111)2 โดยใช้ 2’s ส่วนเติมเต็ม (10111)2 = (01000)2 + (1)2 = (01001)2 11011 + 01001 100100 คาตอบคือ (11011)2 - (10111)2 = (00100)2 ตัวอย่ างที่ 7.15 ให้ ทาการคานวณเลขฐานดังนี ้ (101101)2 - (110010)2 วิธีทา แปลง (110010)2 โดยใช้ 2’s ส่วนเติมเต็ม (110010)2 = (001101)2 + (1)2 = (001110)2 101101 + 001110 0111011 กลับบิต 000100 + 1 -000101 คาตอบคือ (101101)2 - (110010)2 = (-101)2 7.2 การแทนรหัสข้ อมูล (DATA REPRESENTATION) คอมพิวเตอร์ ในปั จจุบนั ประมวลผลในรูปแบบของเลขฐานสอง คือ “0” กับ “1” ซึง่ ใช้ แทนข้ อมูลต่างๆ ของระบบคอมพิวเตอร์ ดังนันการน ้ าเอาข้ อมูลที่มนุษย์เข้ าใจเช่น เสียง รู ปภาพ ตัวอักษร ตัวเลข หรื อสัญลักษณ์ตา่ งๆ ไปประมวลผลจะต้ องนาข้ อมูล ดังกล่าวให้ อยูใ่ นรูปของดิจิทลั ก่อน โดยมาตรฐานในการแทนรหัส ข้ อมูลที่นิยมใช้ กนั ในปั จจุบนั ได้ แก่แอสกี หรื อรหัสมาตรฐานของ สหรัฐอเมริกาเพื่อการสับเปลี่ยนสารสนเทศ (ASCII: American Standard Code for Information Interchange) และ ยูนิโคด (Unicode) มาตรฐานรหัสแอสกี (ASCII) พื ้นฐานของกลุม่ ตัวอักษรเหล่านี ้จะอยูใ่ นรูปแบบตารางตัวอักษร โดยแต่ละ ตัวจะถูกแทนด้ วยรหัสเลขฐานสองขนาด 7 บิต ซึง่ สามารถแทน รหัสตัวอักษรได้ 27 = 128 ตัวอักษร ต่อมารหัสแอสกีได้ รับความนิยม อย่างแพร่หลายและเริ่มไม่เพียงพอต่อการแทนข้ อมูล จึงมีการนาเอารหัส แอสกีมาปรับปรุงให้ สามารถแทนข้ อมูลได้ มากขึ ้น เรี ยกว่า ส่วนขยายรหัส แอสกี (Extend ASCII) ซึง่ จะใช้ เลขฐานสองขนาด 8 บิต โดยเลขฐานสอง 8 บิตใช้ แทนอักษรหนึง่ ตัวทาให้ สามารถแทนอักษรได้ 28 = 256 ตัวอักษร โดยอักษรที่ 0 – 127 ยังตรงตามมาตรฐานเดิม ส่วนอักษรที่ 128 – 255 ใช้ แทนอักษรที่ประเทศนัน้ ๆ ต้ องการ วิธีการนี ้ทาให้ แทนอักษรอื่นที่ นอกเหนือจากภาษาอังกฤษได้ ตัวอย่ างตารางรหัสแอสกี ASCII มาตรฐานรหัสยูนิโคด (UNICODE) เนื่องจากตัวอักษรตามรหัสแอสกี แทนอักษรภาษาอังกฤษกับภาษาท้ องถิ่น ได้ ภาษาเดียวเท่านัน้ ถ้ าต้ องการแสดงผลหลายๆ ภาษาจะทาให้ ลาบาก จึงมีการคิดมาตรฐานการแทนอักษรใหม่ที่เรี ยกว่ายูนิโคด ที่สามารถแทน ตัวอักษรได้ มากขึ ้นกว่าเดิม มาตรฐานยูนิโคด (Unicode Standard) เป็ นมาตรฐานการเข้ า รหัสตัวอักษรแบบสากล โดยสามารถเข้ ารหัสตัวอักษรของภาษาต่างๆ ได้ จานวนมาก โดยมาตรฐานยูนิโคดจะใช้ เลขฐานสองแทนตัวอักษร เริ่มต้ น แบ่งเป็ น UCS-2 จะใช้ รหัสเลขฐานสองขนาด 16 บิต ทาให้ สามารถแทน ตัวอักษรได้ ถงึ 65,536 ตัวอักษร และ UCS-4 จะใช้ รหัสเลขฐานสองขนาด 32 บิต ทาให้ สามารถแทนตัวอักษรได้ ถงึ 2,147,483,647 ตัวอักษร แบบฝึ กหัดทบทวน 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. จงทาการคานวณเลขฐานดังนี ้ (11011)2 + (10011)2 = ( ? )8 จงทาการคานวณเลขฐานดังนี ้ (273)8 + (1011010)2 = ( ? )2 จงทาการคานวณเลขฐานดังนี ้ (354)8 + (1110)2 = ( ? )8 จงทาการคานวณเลขฐานดังนี ้ (5364)8 – (4756)8 = ( ? )8 จงทาการคานวณเลขฐานดังนี ้ (6753)8 – (5736)8 = ( ? )16 จงทาการคานวณเลขฐานดังนี ้ (FA89)16 – (DC6A)16 = ( ? )16 จงทาการคานวณเลขฐานดังนี ้ (100101)2 – (110110)2 = ( ? )2 จงทาการคานวณเลขฐานดังนี ้ (111101)2 – (100110)2 = ( ? )2 จงทาการคานวณเลขฐานดังนี ้ (101101)2 – (100110)2 = ( ? )2 จงทาการคานวณเลขฐานดังนี ้ (111101)2 – (100110)2 = ( ? )2 รหัสแอสกีคืออะไรจงอธิบาย รหัสยูนิโคดคืออะไรจงอธิบาย โดยใช้ วิธี 1’s ส่วนเติมเต็ม โดยใช้ วิธี 1’s ส่วนเติมเต็ม โดยใช้ วิธี 2’s ส่วนเติมเต็ม โดยใช้ วิธี 2’s ส่วนเติมเต็ม http://www.udru.ac.th เอกสารอ้ างอิง งามนิจ อาจอินทร์ , ความรู้ท่ วั ไปเกี่ยวกับวิทยาการคอมพิวเตอร์ ., กรุงเทพฯ, 2542. ธวัชชัย เลื่อนฉวี, และ อนุรักษ์ เถื่อนศิริ, ดิจติ อลเทคนิคเล่ ม 1., กรุงเทพฯ, ศุภาลัยมีเดียจากัด, 2537. ธีรวัฒน์ ประกอบผล, ดิจติ อลอิเล็กทรอนิกส์ ., กรุงเทพฯ, แมคกรอ-ฮิล อินเตอร์ เนชันแนล เอ็น เตอร์ ไพร์ ส, อิงค์., 2540. http://www.udru.ac.th http://www.udru.ac.th