คอมพิวเตอร์ใช้การเปิดปิด หลอดสุญญากาศ
ดังนั้นค่าที่เป็นไปได้คือ 0 กับ 1 ไม่มีติดลบ
จึงกำหนดให้ใช้ 2's complement มากำหนดเลขลบ
วิธีทำคือ เปลี่ยนเลข 1 เป็น 0 เปลี่ยนเลข 0 เป็น 1 แล้วบวกหนึ่ง
เช่น 1 คือ 00000001
เปลี่ยนเป็น 11111110 บวก 1 ได้ 11111111
บิตที่อยู่หน้าสุดจะบอกว่าเป็นเลขบวกหรือลบ ( 0 = +, 1 = -)
พิสูจน์
จาก สมการคณิตศาสตร์ 1 + (-1) = 0
00000001 + ???????? = 0
00000001 + (11111110 + 000000001 ) = 0
นั่นเอง
วิธีที่ง่ายกว่านั้นในการทำ 2's complement คือ
1. หา 1 ตัวสุดท้าย
0101001
2. invert ตัวหน้า 1 ทั้งหมด
1010111
สำหรับคนที่ลืมไปแล้ว
1's complement คือเปลี่ยนเลข 1 เป็น 0 เปลี่ยนเลข 0 เป็น 1 ตามปกติ
เช่น ~1
1 = 00000001
~1 = 11111110 ซึ่งมีค่าเท่ากับ -2
ที่มา : วิชาการดอทคอม, wikipedia
ดังนั้นค่าที่เป็นไปได้คือ 0 กับ 1 ไม่มีติดลบ
จึงกำหนดให้ใช้ 2's complement มากำหนดเลขลบ
วิธีทำคือ เปลี่ยนเลข 1 เป็น 0 เปลี่ยนเลข 0 เป็น 1 แล้วบวกหนึ่ง
เช่น 1 คือ 00000001
เปลี่ยนเป็น 11111110 บวก 1 ได้ 11111111
บิตที่อยู่หน้าสุดจะบอกว่าเป็นเลขบวกหรือลบ ( 0 = +, 1 = -)
พิสูจน์
จาก สมการคณิตศาสตร์ 1 + (-1) = 0
00000001 + ???????? = 0
00000001 + (11111110 + 000000001 ) = 0
นั่นเอง
วิธีที่ง่ายกว่านั้นในการทำ 2's complement คือ
1. หา 1 ตัวสุดท้าย
0101001
2. invert ตัวหน้า 1 ทั้งหมด
1010111
สำหรับคนที่ลืมไปแล้ว
1's complement คือเปลี่ยนเลข 1 เป็น 0 เปลี่ยนเลข 0 เป็น 1 ตามปกติ
เช่น ~1
1 = 00000001
~1 = 11111110 ซึ่งมีค่าเท่ากับ -2
ที่มา : วิชาการดอทคอม, wikipedia
ความคิดเห็น