เนื้อหา
เนื่องจากระบบเลขฐานสองมีเพียงสองสัญลักษณ์ - 1 และ 0 - การแทนตัวเลขลบนั้นไม่ง่ายเท่ากับการเพิ่มเครื่องหมายลบหน้า อย่างไรก็ตามมีวิธีง่ายๆในการแสดงจำนวนลบในระบบเลขฐานสอง บทความนี้จะเสนอวิธีแก้ไขปัญหาสามประการ
ใช้เครื่องหมายบิต
เลือกจำนวนบิตที่คุณจะใช้เพื่อแสดงตัวเลขไบนารี่ของคุณ หมายเลขแปดบิตถูกใช้เป็นมาตรฐานมานานแล้ว มันเป็นขนาดดั้งเดิมสำหรับจำนวนเต็มในการเขียนโปรแกรมคอมพิวเตอร์ แน่นอนว่ายังมีจำนวนเต็มยาว (16 บิต) หมายเหตุ: หากคุณใช้จำนวนเต็มแปดบิตจะมีเพียงเจ็ดบิตเท่านั้นที่ใช้แทนหมายเลขจริงของคุณ
เลือกบิตซ้ายสุดเพื่อใช้เป็นบิตสัญญาณ ถ้าบิตเป็น 0 ตัวเลขจะเป็นบวก ถ้าเป็น 1 ตัวเลขจะเป็นลบ
เขียนจำนวนลบของคุณโดยใช้บิตทั้งแปด ดังนั้นหมายเลข -5 จะเขียนเป็น 10000101
ใช้ 1s ชมเชย
เขียนตัวเลขเป็นเลขฐานสองตามที่คุณต้องการหากเป็นบวก อีกครั้งเขียน 5 เป็น 00000101 โดยสมมติว่าเราใช้จำนวนเต็มแปดบิต
สลับตัวเลข - เช่น 1s ไปที่ 0s และ 0s ไปที่ 1s ดังนั้น 5 กลายเป็น 11111010
ใช้บิตซ้ายสุดเป็นบิตลงชื่อ เช่นเดียวกับการใช้เครื่องหมายบิตตัวเลขที่เป็นบวกจะมี 0 นำบิต (เมื่อเขียนในรูปแบบ 8 บิต) ในขณะที่ตัวเลขติดลบทั้งหมดจะมีตัวเลขนำหน้า 1 หากต้องการใช้ตัวเลขให้ใช้ข้อมูลบิตของสัญญาณแล้วพลิก ตัวเลขกลับสำหรับค่าตัวเลข
ใช้ 2s ชมเชย
เขียนหมายเลขตามที่คุณต้องการราวกับว่ามันเป็นบวกโดยใช้ทั้งแปดบิต ดังนั้น 5 คือ 00000101
กลับค่าบิตสลับ 1s และ 0s ตามที่คุณทำกับคำชม 1s ดังนั้นอีก 5 กลายเป็น 11111010
เพิ่ม 1 หมายเลขของคุณ ดังนั้น 5 กลายเป็น 11111010 + 00000001 = 11111011
ตรวจคำตอบของคุณ. จำนวน 11111011 จะถูกแปลงกลับไปเป็นฐาน 10: -128 + 64 + 32 + 16 + 8 + 0 + 2 + 1 = -5