เนื้อหา
ส่วนเติมเต็มของ 2 เป็นระบบสำหรับแทนเลขฐานสองเชิงลบ นอกจากนี้ยังสามารถใช้เพื่อใช้การลบ - เพื่อลบ "A" จาก "B" ให้แปลง "A" เป็นจำนวนลบและเพิ่ม วิธีนี้หลีกเลี่ยงการสร้างฮาร์ดแวร์สำหรับการบวกและการลบ ด้วยระบบการแปลงเลขฐานสองให้เป็นส่วนเติมเต็มของ 2 - และในทางกลับกันมันเป็นไปได้ที่จะทำให้การแทนค่าของจำนวนลบง่ายขึ้นและมีผลต่อการลบ การแปลงจากส่วนเติมเต็มของ 2 เป็นเลขฐานสิบต้องใช้สองขั้นตอน: ขั้นแรกการแปลงเป็นไบนารีจากนั้นจากไบนารีเป็นฐานสิบ
ขั้นตอนที่ 1
แทนเลขฐานสิบเป็นเลขฐานสองอย่างต่อเนื่องโดยหารด้วย 2 ในชุดและบันทึกส่วนที่เหลือ ตัวอย่างเช่นในการแปลง 13 เป็นไบนารีให้หาร 13 ด้วย 2 เพื่อให้ได้ 6 และเศษแรกคือ 1 หารด้วย 6 ด้วย 2 เพื่อให้ได้ 3 และเศษที่สองคือ 0 หารด้วย 3 ด้วย 2 เพื่อให้ได้ 1 และที่สาม เศษที่เหลือคือ 1. หาร 1 ด้วย 2 เพื่อให้ได้ 0 และเศษที่เหลือคือ 1 ส่วนที่เหลือในลำดับการผลิตย้อนกลับคือ 1101 และเลขฐานสิบฐานสิบ 13 = ไบนารี 1101 การจำเลขฐานสองนั้นง่ายกว่าที่ฉันสร้าง มัน. จากทางขวาให้เพิ่ม d X 2 ^ p โดยที่ "d" คือเลขฐานสองและ "p" คือตำแหน่งดังนั้น 1101 = (1 X 1) + (0 x 2) + (1 x 4) + (1 x 8) = 13.
ขั้นตอนที่ 2
แปลงจากไบนารีเป็นส่วนเติมเต็มของสองกลับด้านบิตและเพิ่ม 1 จากนั้นไบนารีสำหรับ 7 จะเป็น 00000111 และลบ 7 จะเป็น 11111001 เนื่องจาก 00000111 ที่มีบิตกลับด้านคือ 11111000 และ 11111000 + 1 = 11111001 หลักซ้ายสุดคือ สัญญาณ. ตัวเลขบวกมีเครื่องหมายบิตเป็นศูนย์และตัวเลขเชิงลบมีบิตเครื่องหมายเป็น 1 สิ่งที่ดีอย่างหนึ่งเกี่ยวกับส่วนเติมเต็มของ 2 คือการแปลงเป็นไบนารีเกิดขึ้นโดยกระบวนการเดียวกันในการแปลงจากไบนารีเป็นส่วนเติมเต็ม จากสอง ตัวอย่างเช่นในการแปลงส่วนเติมเต็มของสองจาก -7 เป็น 7 ไบนารีให้กลับตัวเลขและเพิ่ม 1. 11111001 กลับด้านคือ 00000110 และ 00000110 + 1 = 00000111
ขั้นตอนที่ 3
แปลงจากส่วนเติมเต็ม 2 เป็นเลขฐานสิบในสองขั้นตอน: ส่วนเติมเต็ม 2 เป็นฐานสองและหลังฐานสองเป็นฐานสิบ ตัวอย่างเช่นในการแปลง -21 นอกเหนือจาก 2 - 11101011 - เป็นทศนิยมให้แปลงเป็นไบนารีก่อนแล้วจึงแปลงไบนารีเป็นทศนิยม สลับ 11101011 เพื่อรับ 00010100 และเพิ่ม 1 เพื่อรับ 00010101 ซึ่งเป็น 21 ในไบนารี จากนั้นถอดรหัสไบนารีโดยใช้สัญกรณ์ตำแหน่งเพื่อรับ (0 X 128) + (0 X 64) + (0 X 32) + (1 X 16) + (0 X 8) + (1 X 4) + (0 X 2) + (1 x 1) = 21