มาตรฐาน C ไม่ได้มีอำนาจในการแสดงหมายเลขติดลบ
ในการใช้งานมากที่สุดที่คุณมีแนวโน้มที่จะพบลบลงนามจำนวนเต็มจะถูกเก็บไว้ในสิ่งที่เรียกว่าสมบูรณ์สอง วิธีที่สำคัญอื่น ๆ ของการจัดเก็บตัวเลขที่ติดลบลงนามที่เรียกว่าส่วนประกอบหนึ่งของ
เติมเต็มทั้งสองของจำนวน N-bit ถูกกำหนดให้เป็นx
2^N - x
ยกตัวอย่างเช่นการเติมเต็มทั้งสองของ 8 บิต1
เป็นหรือ2^8 - 1
1111 1111
เติมเต็มทั้งสองของ 8 บิต8
เป็นซึ่งในไบนารี2^8 - 8
1111 1000
สิ่งนี้สามารถคำนวณได้โดยการพลิกบิตของx
และเพิ่มหนึ่ง ตัวอย่างเช่น:
1 = 0000 0001
~1 = 1111 1110
~1 + 1 = 1111 1111
-1 = 1111 1111
21 = 0001 0101
~21 = 1110 1010
~21 + 1 = 1110 1011
-21 = 1110 1011
ส่วนประกอบหนึ่งของหมายเลข N-bit x ถูกกำหนดเป็น x โดยที่บิตทั้งหมดของมันพลิกโดยทั่วไป
1 = 0000 0001
-1 = 1111 1110
21 = 0001 0101
-21 = 1110 1010
ส่วนประกอบของสองมีข้อดีหลายประการมากกว่าส่วนเสริม ตัวอย่างเช่นไม่มีแนวคิด 'ศูนย์เชิงลบ' ซึ่งมีเหตุผลที่ดีที่ทำให้หลายคนสับสน การบวกการคูณและการลบจะทำงานเหมือนกันกับจำนวนเต็มที่ลงนามแล้วซึ่งถูกนำไปใช้กับสองส่วนที่เติมเต็มเช่นเดียวกับจำนวนเต็มที่ไม่ได้ลงนามเช่นกัน