การแทนจำนวนที่มีเครื่องหมาย
การแทนจำนวนที่มีเครื่องหมาย (อังกฤษ: Signed number representations) แยกออกเป็น Signed Number หรือ ตัวเลขแบบคิดเครื่องหมาย คือการคำนวณของตัวเลขดิจิตอลวิธีหนึ่ง ซึ่งในตัวเลขดิจิตอลนั้นอาจแบ่งส่วนประกอบออกได้เป็นสองส่วนด้วยกัน โดยในส่วนแรกนั้นจะเป็นส่วนที่เรียกว่า Magnitude หรือค่าขนาดของบิตตัวเลข มีตำแหน่งอยู่ที่สามนับจากขวา และส่วนที่สองจะเรียกว่า Signed Bit หรือค่าขนาดหนึ่งบิตแทนเครื่องหมายบวกหรือลบ หรือเรียกสั้นๆ ว่าบิตเครื่องหมาย โดยที่บิตเครื่องหมายนี้จะมีค่าเป็นบิตสูงสุด มีตำแหน่งอยู่หน้าสุด ดังนั้นในตัวเลขดิจิตอลหนึ่งตัวสามารถที่จะแทนได้ทั้งค่าบวก และค่าลบ ซึ่งถ้าบิตเครื่องหมายเป็น 0 ค่าของบิตสูงสุดจะมีค่าเป็นบวก แต่ถ้าบิตเครื่องหมายเป็น 1 ค่าของบิตสูงสุดจะมีค่าเป็นลบ ไม่ว่าบิตเครื่องหมายจะเป็น 0 หรือ 1 ก็ตามค่าขนาดของบิตจะเหมือนเดิม ดังตัวอย่างต่อไปนี้
- ตัวอย่างที่ 1
- +12 = 0000 1100
- -12 = 1000 1100
- ตัวอย่างที่ 2
- +20 = 0001 0100
- -20 = 1001 0100
จากตัวอย่างจะเป็นการแทนค่าตัวเลขดิจิตอลแบบ Sign-Magnitude System หลังจากที่ได้ดูตัวอย่างแล้วจะพบว่าความแตกต่างระหว่างบวกและลบ เช่น +12 และ -12 จะแตกต่างกันเพียงค่าของบิตเครื่องหมายเท่านั้น ส่วนค่าขนาดของบิตจะมีค่าเท่ากัน ถึงแม้ว่าระบบเลขดิจิตอลแบบนี้จะสามารถแทนค่าบวกและค่าลบได้ แต่ในการคำนวณของเครื่องคิดเลขจะไม่สามารถใช้คำนวณระบบนี้ได้
เนื้อหา |
[แก้] วิธีสร้างวงจรการคำนวณ
เนื่องจากการสร้างวงจรการคำนวณจะมีความละเอียดซับซ้อนมากทำได้ยาก จึงสามารถทำวิธีอื่นได้อีกสองแบบ คือ แบบ 1’s Complement System และ 2’s Complement System
[แก้] 1’s Complement System
เป็นการเปลี่ยนค่าสถานะของบิตเครื่องหมาย คือถ้าบิตเครื่องหมายเป็น 1 ให้เปลี่ยนเป็น 0 และถ้าบิตเครื่องหมายเป็น 0 ให้เปลี่ยนเป็น 1 โดยที่จะทำการเปลี่ยนสถานะทุกบิตกลับกันทั้งหมด ตามตัวอย่างต่อไปนี้
- ตัวอย่างที่ 1
- +12 = 0000 1100
- -12 = 1111 0011 (1’s Complement)
- ตัวอย่างที่ 2
- +18 = 0001 0010
- -18 = 1110 1101 (1’s Complement)
[แก้] 2’s Complement System
คือผลบวกของ 1's Complement กับเลข 1 ทั้งนี้เพื่อประโยชน์สำหรับทำการลบเลข และเป็นการแสดงค่าเลขที่เป็นค่าลบในระบบ Computer ระบบ 2’s Complement นั้นเป็นรหัสที่ใช้แทนเลขฐานสองแบบบวกและแบบลบ ในระบบ Signed Binary Number หรือระบบตัวเลขฐานสองแบบคิดเครื่องหมาย หรือ ระบบ 2’s Complement สามารถทำได้โดยถ้าเป็นเลขบวกไม่ต้องเปลี่ยนค่าสถานะของบิตเครื่องหมาย แต่ถ้าเป็นเลขลบ ให้ทำการกลับค่าโดยการ 1’s Complement ทุกบิต และบวก 1 เสมอตามตัวอย่าง ดังนี้
- ตัวอย่างที่ 1
- +12 = 0000 1100
- -12 = 1111 0011 (1’s Complement)
- 1111 0011 + 1
- -12 = 1111 0100 (2’s Complement)
- ตัวอย่างที่ 2
- +16 = 0001 0000
- -16 = 1110 1111 (1’s Complement)
- 1110 1111 + 1
- -16 = 1111 0000 (2’s Complement)
[แก้] Possible Number Representations
4 bit signed magnitude
| Decimal number | Bit pattern |
|---|---|
| 1111 | -7 |
| 1110 | -6 |
| 1101 | -5 |
| 1100 | -4 |
| 1011 | -3 |
| 1010 | -2 |
| 1001 | -1 |
| 1000 | -0 |
| 0000 | +0 |
| 0001 | 1 |
| 0010 | 2 |
| 0011 | 3 |
| 0100 | 4 |
| 0101 | 5 |
| 0110 | 6 |
| 0111 | 7 |
- 1’s Complement
- +1 = 001
- -1 = 110
- +2 = 010
- -2 = 101
- +3 = 011
- -3 = 100
- +12 = 1100
- -12 = 0011
- +13 = 1101
- -13 = 0010
- 2’s Complement
- +1 = 001
- -1 = 111
- +2 = 010
- -2 = 110
- +3 = 011
- -3 = 101
- +12 = 1100
- -12 = 0100
- +13 = 1101
- -13 = 0011