1 / 44

CHARPTER 8

CHARPTER 8. ระบบจำนวนและการแทนค่าข้อมูลในคอมพิวเตอร์ (Number System and Sign Representation). สาระการเรียนรู้. เข้าใจแนวคิดของระบบเลขฐานและสามารถแปลงเลขฐานได้ เข้าใจหลักการจัดเก็บข้อมูลในคอมพิวเตอร์ สามารถแปลงค่าตัวเลขเป็นรหัส BCD-8421 ได้

Download Presentation

CHARPTER 8

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CHARPTER 8 ระบบจำนวนและการแทนค่าข้อมูลในคอมพิวเตอร์ (Number System and Sign Representation)

  2. สาระการเรียนรู้ • เข้าใจแนวคิดของระบบเลขฐานและสามารถแปลงเลขฐานได้ • เข้าใจหลักการจัดเก็บข้อมูลในคอมพิวเตอร์ • สามารถแปลงค่าตัวเลขเป็นรหัส BCD-8421 ได้ • สามารถปฏิบัติการคำนวณด้วยการใช้รหัสเกิน 3 (Excess 3) ได้ • เข้าใจหลักการของคอมพลีเมนต์ โอเวอร์โฟลว์ และปฏิบัติการกับตัวเลขได้

  3. ระบบเลขฐาน ระบบเลขฐานสิบ (Decimal Number System) ระบบเลขฐานสิบเป็นระบบจำนวนที่ใช้ในชีวิตประจำวันของมนุษย์ซึ่งประกอบด้วยค่า ตัวเลข 0, 1, 2, 3, 4, 5, 6, 7, 8, และ 9 และที่เรียกว่าฐานสิบ เพราะมีเลข 10 ตัวเท่านั้น ค่ามากน้อยขึ้นอยู่กับหลักเป็นสำคัญ คือ ตัวเลขจำนวนเต็มที่อยู่ทางขาวสุดคือ ค่าน้อยที่สุด และตัวเลขจำนวนเต็มที่อยู่ซ้ายสุดคือตัวเลขที่ค่ามากที่สุด 1 2 5 6 9 8 9 ล้าน แสน หมื่น พัน สิบ หน่วย ร้อย

  4. Place Name Place Value

  5. ระบบเลขฐานสิบเป็นระบบเลขในเชิงตำแหน่งโดยค่าใด ๆ ในฐานสิบจะเท่ากับการนำค่าเลขแต่ละหลักมาคูณกำลังสิบและนำมาบวกกัน พิจารณาจากตัวอย่างต่อไปนี้ ค่าตัวเลข 371 มาทำการกระจายค่าในตำแหน่งก็จะได้ 371 = 300 + 70 + 1 หรือ 371 = (3 x 102 ) + (7 x 101 ) + (1 x 100 ) (5 x 103 ) + (3 x 102 ) + (6 x 101 ) + (1 x 100 ) 5361 = ระบบตัวเลขจะไม่ยึดติดกับระบบเลขฐานสิบเสมอไป ดังนั้นหลักการของระบบเลขฐานสิบดังกล่าวข้างต้นสามารถประยุกต์เลขฐานใด ๆ ก็ได้เช่น ระบบเลขฐานสอง , ระบบ ฐานแปด, ระบบเลขฐานสิบหก เป็นต้น

  6. ระบบเลขฐานสอง (Binary Number System) โดยทั่วไปจะมักระบบเลขฐานสิบ ใช้การคำนวณเพราะสะดวกเข้าใจง่าย แต่สำหรับใน คอมพิวเตอร์ เมื่อนำระบบเลขฐานสิบมาใช้จะทำให้เกิดปัญหาเป็นอย่างมาก เนื่องจากหากใช้ระบบ เลขฐานสิบในคอมพิวเตอร์จำเป็นต้องออกแบบอุปกรณ์ไฟฟ้าที่สามารถแยกความแตกต่างของสถานะ ถึง 10 สถานะด้วยกันเพื่อใช้แทนเลข 0 - 9 ซึ่งหลักการดังกล่าวอาจทำให้เกิดข้อผิดพลาดง่าย เพราะระบบเลขฐาน 10 เป็นระบบเลขเชิงตำแหน่งเมื่อเกิดข้อผิดพลาดเพียงแค่หลักเดียว ก็จะส่งผลให้เกิดคลาดเคลื่อนสูง เช่นหลักแสน หากลืมเพียงหลักเดียวก็จะเหลือหลักหมื่นส่งผลให้ความน่าเชื่อถือลดลง ดังนั้นระบบเลขฐานสองจึงเป็นระบบเลขฐานที่นำมาพิจารณาเพื่อใช้กับระบบคอมพิวเตอร์ ซึ่งมีค่าเพียง 0 และ 1 กล่าวคือสถานะทางไฟฟ้าจะมีเพียงสถานะ เปิด หรือ ปิดเท่านั้นข้อมูลต่าง ๆ ที่ จัดเก็บลงในคอมพิวเตอร์ คือตัวเลขโด ๆ ของฐานสองที่นำมาประกอบกัน

  7. 286 • 2 143 0 • 2 71 1 • 2 35 1 • 2 17 1 • 2 8 1 • 2 4 0 • 2 2 0 • 1 0 การแปลงเลขฐานสิบเป็นฐานสอง หลักการทั่วไปในการแปลงเลขฐานสิบเป็นฐานใด ๆ นั้น ต้องนำเลขฐานสิบเป็นตัวตั้ง และหารด้วยเลขฐานที่ต้องการจนกระทั้งหารต่อไม่ได้ส่วนเศษที่ได้ คือ ผลลัพธ์เช่นการแปลง 28610 เลขฐานสอง จะได้เท่าใด 49610 เลขฐานสอง ทำได้ดังนี้ • 496 • 2 248 0 • 2 124 0 • 2 62 0 • 2 31 0 • 2 15 1 • 2 7 1 • 2 3 1 • 1 1 คำตอบคือ 49610= 1111100002 คำตอบคือ 28610= 1000111102

  8. การแปลงเลขฐานสองเป็นฐานสิบ เมื่อ 496 แปลงเป็นเลขฐานสองจะได้ผลลัพธ์ 111110000 และหากต้องการแปลงค่าเลขฐานสองนี้กลับเป็นเลขฐานสิบทำได้ดังนี้ 1111100002 เลขฐานสิบ 1111100002= (1 x 28) + (1 x 27) + (1 x 26) + (1 x 25) + (1 x 24) (0 x 23) + (0 x 22) + (0 x 21) + (0 x 20) = 256 + 128 + 64 + 32 + 16 = 49610 1110001102 เลขฐานสิบ 1110001102= (1 x 28) + (1 x 27) + (1 x 26) + ( 0 x 25) + ( 0 x 24) (0 x 23) + (1 x 22) + (1 x 21) + (0 x 20) = 256 + 128 + 64 + 4 + 2 = 45410

  9. นอกจากนี้ยังมีวิธีการแปลงเลขฐานโดยนำวิธีการของ Place Value โดยการกำหนดค่า 1 หรือ 0 ในแต่ละตำแหน่งที่สามารถนำค่าแต่ละตำแหน่งนั้นมารวมกันให้เท่ากับค่าตัวเลข

  10. จากที่โจทย์ตัวอย่างกำหนดให้ 49610 เป็น เลขฐานสองโดยใช้ ตาราง Base Place Value ทำได้ดังนี้ 49610 เลขฐานสอง

  11. 45410 เลขฐานสอง 45410 1110001102 39710 1100011012

  12. ระบบเลขฐานแปด (Octal Number System) ระบบเลขฐานแปดจะประกอบด้วยตัวเลข0, 1, 2, 3, 4, 5, 6, 7, ซึ่งสามารถนำมาใช้ งานกับระบบคอมพิวเตอร์ได้ ทำให้มีความสินเปลืองหน่วยความจำน้อยกว่าเลขฐานสอง ความ สัมพันธ์ระหว่างเลขฐานแปดกับเลขฐานสอง ก็คือเลขโดด ๆ ในเลขฐานแปดนั้นจะมีค่าเป็น 3 เท่าของเลขฐานสอง (23) หรือกล่าวอีกนัยหนึ่งก็คือ เลขสามหลักของเลขฐานสองจะมีค่าเท่ากับ หนึ่งหลักในฐานแปดนั่นเอง

  13. 8 397 8 495 61 การแปลงเลขฐานสิบเป็นเลขฐานแปด การแปลงเลขฐานสิบเป็นเลขฐานแปดสามารถทำได้ ดังนี้ 49610 49610 เลขฐานแปด 39710 เลขฐานแปด 8 496 8 62 0 7 6 คำตอบที่ได้คือ 6158 คำตอบที่ได้คือ 7608

  14. การแปลงเลขฐานแปดเป็นเลขฐานสอง การแปลงเลขฐานแปดเป็นเลขฐานสองสามารถทำ ได้ดังนี้ 7608 6158 เลขฐานสอง เลขฐานสอง 72158 เลขฐานสอง

  15. การแปลงเลขฐานสองเป็นเลขฐานแปด การแปลงเลขฐานสองเป็นเลขฐานแปดสามารถทำ ได้ดังนี้ 1111100002 เลขฐานแปด 1100011012 เลขฐานแปด 110 111 000 001 110 101 7 6 0 6 1 5 คำตอบที่ได้คือ 7608 คำตอบที่ได้คือ 6158 1110100011012 เลขฐานแปด 101 111 010 001 5 7 2 1 คำตอบที่ได้คือ 72158

  16. ระบบเลขฐานสิบหก (Hexadecimal Number System) ระบบเลขฐานแปดจะประกอบด้วยตัวเลข0, 1, 2, 3, 4, 5, 6, 7,8, 9, A, B, C, D, E, F, ซึ่งจะทำให้ประหยัดหน่วยความจำขึ้นไปอีก ความสัมพันธ์ระหว่าง เลขฐานสิบหกกับเลขฐานสอง ก็คือเลขโดดในฐานสิบหกจะมีค่าเป็น 4 เท่าของเลขฐานสอง (24) หรือกล่าวอีกนัยหนึ่งก็คือ เลขสี่หลักของเลขฐานสองจะมีค่าเท่ากับหนึ่งหลักในฐานสิบหกนั่นเอง ข้อสังเกตในการคำนวณเลขฐานสิบหกคือ A=10 B=11 C=12 D=13 E=14 F=15

  17. 16 397 16 24 D 1 8 การแปลงเลขฐานสิบเป็นเลขฐานสิบหก การแปลงเลขฐานสิบเป็นเลขฐานแปดสามารถทำ ได้ดังนี้ 49610 49610 49610 เลขฐานสิบหก เลขฐานสิบหก 39710 เลขฐานสิบหก 16 496 16 31 0 1 F คำตอบที่ได้คือ 18D16 คำตอบที่ได้คือ 1F016

  18. การแปลงเลขฐานสิบหกเป็นเลขฐานสอง การแปลงเลขฐานแปดเป็นเลขฐานสองสามารถทำ ได้ดังนี้ 1F016 18D16 เลขฐานสอง เลขฐานสอง 7D2316 เลขฐานสอง

  19. การแปลงเลขฐานสองเป็นเลขฐานสิบหก การแปลงเลขฐานสองเป็นเลขฐานแปดสามารถทำ ได้ดังนี้ เลขฐานสิบหก 0001111100002 เลขฐานสิบหก 0001100011002 0001 1111 0000 0001 1000 1101 1 F 0 1 8 D คำตอบที่ได้คือ 1F016 คำตอบที่ได้คือ 18D16 เลขฐานสิบหก 01111101001000112 0011 0111 1101 0010 3 7 D 2 คำตอบที่ได้คือ 7D2316

  20. การจัดเก็บข้อมูลในคอมพิวเตอร์การจัดเก็บข้อมูลในคอมพิวเตอร์ คอมพิวเตอร์จะใช้ระบบเลขฐานสองในการจัดเก็บข้อมูลซึ่งเป็นได้ทั้งตัวเลขและตัวอักษร กล่าวคือคอมพิวเตอร์จะทำการจัดเก็บข้อมูลเหล่านั้นในรูปแบบของเลขฐานสอง(Binary Digits) หรือ เรียกว่าบิต (Bit) นั่นเอง ** บิต (Bit) คือหน่วยที่เล็กที่สุดของข้อมูลในคอมพิวเตอร์ที่สามารถแทนค่าข้อมูลได้เพียงหนึ่ง ในสองสถานะเท่นั้นคือ 0 หรือ 1

  21. บิต ไบต์ และเวิร์ด (Bit, Byte and Word) สถานะของบิตจะมีสถานะเปิดหรือปิด ซึ่งสมนัยกับระบบเลขฐานสองที่ประกอบด้วยตัวเลขฐานสองที่ประกอบด้วยตัวเลข 0 กับ 1 (0=ปิด, 1=เปิด) ดังนั้นบิตจึงไม่สามารถแทนค่าข้อมูล ต่าง ๆได้ทั้งหมด เพราะแทนค่าสัญลักษณ์ได้เพียง 0 กับ 1 เท่านั้น จึงได้มีการรวมบิตหลาย ๆ บิต มารวมกันเป็นไบต์โดย 1 ไบต์จะประกอบไปด้วย 8 บิตหรือการรวมกลุ่มของบิตหลาย ๆ บิตรวม กันเป็นเวิร์ดซึ่งหนึ่งเวิร์ดอาจจะประกอบด้วยจำนวนบิต 16 บิต หรือ 32 บิตเป็นต้น บิต Byte= 8 บิต Word= 2 ไบต์ / 16 บิต Long Word = 2 เวิร์ด / 4 ไบต์ / 32 บิต

  22. การจัดเก็บค่าตัวเลขในคอมพิวเตอร์การจัดเก็บค่าตัวเลขในคอมพิวเตอร์ เมื่อพิจารณาค่าตัวเลขที่ใช้กันอยู่นั้น ก็จะมีค่าตัวเลขที่เป็นค่าบวกและค่าลบ รวมทั้งอาจ เป็นค่าที่มีจุด ทศนิยม แต่สำหรับในคอมพิวเตอร์การที่จะให้คอมพิวเตอร์รับรู้ว่าค่าใดเป็นค่าบวก หรือค่าใดเป็นค่าลบนั้น ก็จะมีกระบวนการจัดการที่แตกต่างจากมนุษย์ กล่าวงคือ จะไม่ใช้ + หรือ – นำหน้าตัวเลขอย่างที่ใช้กัน ซึ่งรายละเอียดต่อไปจะอธิบายว่าคอมพิวเตอร์จัดเก็บค่าตัวเลขอย่างไร

  23. การแทนค่าจำนวนเต็มไม่รวมเครื่องหมาย (Unsign Representation) หมายถึงการจัดเก็บค่าตัวเลขจำนวนเต็มเฉพาะค่าบวก ซึ่งสมมติว่ามีค่าเวิร์ด หนึ่งขนาด 8 บิต ใช้ในการจัดเก็บค่าตัวเลขจำนวนเต็มไม่รวมเครื่องหมายนั้นเรียกว่า เวิร์ดขนาด 8 บิตนี้สามารถ แทนค่าตัวเลขจำนวนเต็มไม่รวมเครื่องหมาย (เฉพาะค่าบวก) ได้ตั้งแต่ 0 ถึง 256 (28) ดังตัวอย่าง 1000 0000 = 128 1111 1111= 256 0000 0001= 1 0010 1001= 1

  24. การแทนค่าเลขจำนวนเต็มรวมเครื่องหมาย (Sign-Magnitude Representation) ค่าตัวเลขต่าง ๆ อาจเป็นได้ทั้งค่าบวกหรือค่าลบ โดยสัญลักษณ์ของการบวกและการลบคือ + และ – แต่ในคอมพิวเตอร์สัญลักษณ์ดังกล่าวจะไม่มีความหมายใด ๆ ดังนั้นการแยกแยะว่าค่าตัวเลข ใดเป็นค่าบวก หรือค่าใดเป็นค่าลบนั้น พิจารณาจากบิตเครื่องหมายซึ่งเรียกว่า Sign Bit ดังนั้นจากเวิร์ด 8 บิตถ้าไม่รวมบิตเครื่องหมายก็จะสามารถแทนค่าตัวเลขได้ถึง 256 ตัวในขณะที่เวิร์ด 8 บิตที่รวมบิต เครื่องหมายสามารถจึงสามารถแทนค่าตัวเลขได้เพียงครึ่งหนึ่ง (128) เพราะมีการแบ่งตัวเลขออกเป็น สองส่วนด้วยกันคือส่วนที่เก็บค่าตัวเลขที่เป็นค่าบวก และส่วนที่เก็บค่าตัวเลขที่เป็นค่าลบ ซึ่งมีค่า ตั้งแต่ +127 ถึง -128 นั่นเอง *** Sig Bit เป็นตัวกำหนดว่าค่าที่นั้นเป็น + หรือ – โดยสังเกต ถ้าเลขตัวหน้าเป็น 0 คือ ค่าออกมาเป็น + ถ้าเลขตัวหน้าเป็น 1 คือ ค่าออกมาเป็น -

  25. ค่าออกมาเป็น - ค่าออกมาเป็น + 0010 0000 +32= 0001 0001 + 18 = 0001 0010 + 17= 1010 0000 -32= 1001 0001 - 17= - 18 = 1001 0010

  26. การปฏิบัติการกับตัวเลขการปฏิบัติการกับตัวเลข สำหรับการปฏิบัติการกับตัวเลขไม่ว่าจะเป็นการบวก การลบ การคูณ และการหารใน คอมพิวเตอร์จะใช้เฉพาะการบวก (วงจรบวก) เท่านั้นโดยหากเป็นการลบก็จะกลายเป็นการบวก ด้วยคอมพลีเมนต์ (Complement) ซึ่งความเป็นไปได้ของการบวกของเลขฐานสอง คือ 0+0=0 0+1=1 1+0=1 1+1=10 0+0=0 0+1=1 1+0=1 1+1=10 00 0 0 1 0 1 0 (+10)10 0 0 0 1 0 1 1 1 (+23)10 0 0 1 0 0 0 0 1 (+33)10 + (หากเป็นการทดก็จะต้องใส่ 0 และทด 1 ในบิตถัดไป )

  27. 0 1 0 0 0 0 0 0 (+64)10 1 0 0 0 0 0 0 0 (+128)10 0 1 1 0 0 1 0 0 (+100)10 0 0 1 1 0 0 0 1 (+49)10 + 1 0 0 1 0 1 0 1 (+149)10 00 1 0 1 0 1 0 (+42)10 0 0 0 1 0 1 1 0 (+22)10 0 1 1 0 0 0 0 0 (+96)10 0 0 1 0 0 0 0 0 (+32)10 + +

  28. รหัส BCD-8421(Binary Code Decimal-8421) รหัส BCD-8421 เป็นรหัสเลขฐานสองขนาด 4 บิต ที่ใช้แทนค่า0 ถึง 0 โดย 8, 4, 2, 1, นั้นคือค่า ประจำตำแหน่งของลำดับบิต โดยค่าประจำตำแหน่งในแต่ละบิตสามารถแสดงได้ดังนี้ ตำแหน่งบิต

  29. 0101 0110 0111 0011 1000 1001 0100

  30. ทำการแปลงเลขฐานสิบให้เป็นรหัสเลขฐานสอง (Binary Number) และรหัส BCD-8421 ได้ ดังรูปต่อไปนี้ 1001 0110 0001 0010 0000

  31. รหัสเกิน 3 (Excess 3 Code) เมื่อมีการคำนวณตัวเลขด้วยรหัสเกิน BCD-8421 ในบางครั้งผลลัพธ์ที่ได้อาจไม่ถูกต้อง ดังนั้นการใช้รหัสเกิน 3 (Excess 3) มาใช้ในการคำนวณร่วมกับ รหัส BCD-8421 ก็จะส่งผลลัพธ์จากการคำนวณ มีค่าที่ถูกต้องตามรหัส BCD-8421 กล่าวคือ ก่อนการดำเนินกาคำนวณให้ทำการแปลงตัวเลขเหล่านั้น เป็นรหัสเกิน 3 เสียก่อนแล้วจึงค่อยทำการคำนวณผลลัพธ์ที่ได้จากการคำนวณก็จะเป็นผลลัพธ์ที่ถูกต้องตามรหัส

  32. 0110 0111 1000 1001 1010 1011 1100

  33. Decimal 5 6 BCD-8421 0 1 1 1 0 1 1 0 Excess 3 1 0 1 0 1 0 0 1 13 1 1 0 1 1 0 0 1 1 การบวกรหัสเกิน 3 (Excess 3 Code) Decimal 5 9 14 BCD-8421 0 1 0 1 1 0 0 1 1 1 1 0 Excess 3 1 0 0 0 1 1 0 0 1 0 1 0 0

  34. การบวกด้วย (Two’s Complement) ในการบวกและการลบตัวเลขปกติในระบบตัวเลขฐานสิบนั้นจะใช้สัญลักษณ์ + หรือ – ซึ่งเป็น สัญลักษณ์แทนเครื่องหมาย ดังนั้นจึงจะสามารถแยกแยะ ค่าตัวเลขต่าง ๆ จากเครื่องหมายได้ทันที แต่ ในคอมพิวเตอร์การบวกและการลบจะใช้วงจรเดียวกัน ซึ่งจะไม่มีการแยกวงจรที่ใช้สำหรับการบวก กับวงจรที่ใช้สำหรับการลบ ดังนั้นการลบ จึงจำเป็นต้องใช้วงจรบวกมาใช้งาน ซึ่งก็คือ คอมพลีเมนต์

  35. หลักการของ Two’s Complement มีอยู่ 2 ขั้นตอนด้วยกันคือ 1.แปลงเลขฐานสองนั้นให้อยู่ในรูปของ One’s Complement ด้วยการกลับบิตตรงกัน ข้ามเช่น จากบิต 0 เป็นบิต 1 หรือจากบิต 1 เป็นบิต 0 2. บวก 1 เพื่อให้อยู่ในรูปแบบของ Two’s Complement

  36. จงพิจารณาจากตัวอย่างต่อไปนี้ ซึ่งเป็นค่าตัวเลขฐานสองที่อยู่ในรูปแบบของ Two’ Complement กรณีที่ 1 0 0 0 0 1 0 1 0 = (+10)10 (บิตทางด้านซ้ายสุดมีค่าเป็นบวก ดังนั้นจึงไม่ต้องแปลง) กรณีที่ 2 1 1 1 1 1 1 0 0 = (+10)10 (แปลงเป็น 1’s Complement และบวก 1 เพื่อเป็น 2’s Complement) = 0 0 0 0 0 0 1 0 0 = (4)10 = (-4)10

  37. 1 1 1 1 1 1 1 1(-1)10 1 1 1 1 1 1 0 0(-4)10 1 1 1 1 1 0 1 1(-5)10 จากตัวอย่างต่อไปนี้ เป็นการบวกค่าตัวเลขโดยพิจารณาจากด้านขวามือคือค่าตัวเลขซึ้งเป็นเลขฐานสิบ และทางซ้ายมือคือค่าตัวเลขฐานสองขนาด 8 บิตซึ่งบวกด้วยวิธี Two’ Complement (+5)100 0 0 0 0 0 0 1 (-2)100 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 (+5)10 1 1 1 1 1 1 1 0 (-2)10 0 0 0 0 0 0 1 1 (+3)10 Two’ Complement Discard carry (1) (-1)100 0 0 0 0 0 0 1 (-4)100 0 0 0 0 1 0 0 Two’ Complement Discard carry (1)

  38. โอเวอร์โฟลว์ (Overflow) Overflow คือ ผลลัพธ์ของตัวเลขที่มีค่าเกินกว่าที่จะรับได้ทำให้แสดงผลค่าตัวเลขที่เป็นผลลัพธ์ เกินความผิดพลาด ซึ่งกฎการ Overflow คือ ถ้าตัวเลขสองค่าที่มี Sign เหมือนกัน (Large Magnitudes) มาบวกกัน จะเกิดปรากฎการณ์ Overflow ขึ้น ซึ่งผลลัพธ์ที่ได้ผิดไปจากความเป็นจริงเนื่องจากผลลัพธ์ ได้จากค่าตัวเลขนั้นมีค่าเกินช่วงตัวเลขที่รับได้นั้นเอง

  39. ตัวอย่างเช่น (+80)10 และ (+50)10 โดยมีรูปแบบ 8 บิตพร้อมบิตเครื่องหมาย (8 Bit With Sign- Magnitude) ผลลัพธ์ที่ได้ควรจะเป็น (+130)10 แต่อย่างไรผลลัพธ์ที่ได้จากการคำนวณจะได้ (-126)10 เนื่องจากเกิด overflow นั้นเอง 0 1 0 1 0 0 0 0 (+80)10 0 0 1 1 0 0 1 0 (+50)10 1 0 0 0 0 0 1 0 (-126)10 เนื่องจากค่าบวกสูงสุดของ 8 บิตรวมบิตเครื่องหมายใน Two’Complement คือ (+127)10 ดังนั้น จึงเป็นไปไม่ได้ว่าจะแสดงผลลัพธ์เป็น (+130)10 ซึ่งสามารถอธิบายได้ดังนี้ คือผลลัพธ์ที่ได้ 10000010 ซึ่งมี 8 บิตรวมบิตเครื่องหมาย ดังนั้นบิตซ้ายสุดจึงสงวนไว้เพื่อเป็นบิตเครื่องหมาย โดยบิตซ้ายสุดนี้มี ค่าเป็น 1 นั้นหมายถึงเป็นค่าลบ จากนั้นจึงดำเนินการแปลงกลับและบวก 1 ทำให้ได้ค่าเท่ากับ 1111110 เมื่อแปลงเป็นเลขฐานสิบจึงมีค่าเท่ากับ - 126 ทำให้ผลลัพธ์เกิดความผิดพลาดเนื่องจาก Overflow นั้น เอง

  40. เพื่อให้มีความเข้าใจมากยิ่งขึ้น จึงขอยกตัวอย่างเวิร์ดที่มีเพียง 4 บิต รวมบิตเครื่องหมาย ซึ่งทำให้ สามารถแทนค่าตัวเลขทั้งค่าบวกและค่าลบได้ โดยค่าในส่วนขวามือของภาพจะเป็นค่าบวก และค่าในส่วน ซ้ายมือจะเป็นค่าลบ

  41. THE END

More Related