In a 4-bit one's complement system, you add +5 (0101) and -3 (1100). The raw binary result is 10001. What is the correct final answer?
A0001 (+1) — the carry simply wraps the result back to 4 bits
B0010 (+2) — end-around carry adds the overflow bit back to the LSB
C1110 (-1) — the carry inverts the sign
D0000 (0) — the carry cancels the result
End-around carry is the correction step unique to one's complement. When a carry overflows past the MSB, it must be added back to the least-significant bit: 0001 + 1 = 0010 = +2. Without this step, sums crossing zero are off by one. This is one of the key reasons one's complement fell out of favor — two's complement requires no such correction.
Question 2 Multiple Choice
Why does one's complement have two representations of zero, while two's complement has only one?
ABecause one's complement uses fewer bits and cannot distinguish all values
BBecause flipping all bits of 0000 gives 1111, a different pattern that also represents zero
CBecause the MSB is reserved for the sign and cannot encode magnitude
DBecause one's complement was designed before hardware could reliably represent zero
In one's complement, negation = flip all bits. Applying this to +0 (0000) produces 1111, which represents −0. Both 0000 and 1111 evaluate to zero, but are distinct bit patterns. This forces comparison logic to test two patterns when checking for zero. Two's complement avoids this: flipping all bits of 0000 gives 1111, but then adding 1 wraps back to 0000, so there is only one zero.
Question 3 True / False
In one's complement, end-around carry is mainly needed when the two operands have opposite signs.
TTrue
FFalse
Answer: False
End-around carry is needed whenever a carry overflows out of the MSB position, regardless of the signs of the operands. This can happen in mixed-sign addition or in other arithmetic operations. The rule is structural: any overflow carry past the MSB must be added back to the LSB. Limiting it to opposite-sign cases would miss legitimate corrections.
Question 4 True / False
The Internet checksum used in TCP/IP headers is computed using one's complement arithmetic, partly because the symmetry of positive and negative zero simplifies incremental updates.
TTrue
FFalse
Answer: True
This is one of the few modern uses of one's complement. The Internet checksum sums 16-bit words in one's complement and takes the one's complement of the result. The dual-zero symmetry is actually a feature here: because +0 and -0 both represent 'no error,' incremental checksum updates (when a header field changes) remain consistent without special-casing zero. It's a rare case where one's complement's quirk becomes a design advantage.
Question 5 Short Answer
Why does one's complement require end-around carry for addition, and what problem does this solve?
Think about your answer, then reveal below.
Model answer: When two one's complement numbers are added and produce a carry out of the MSB, that carry must be added back to the LSB. Without this correction, results that cross zero (from positive to negative or vice versa) are off by one. The problem arises because the two-zero representation leaves a 'gap' in the number line: going from +0 to -0 consumes one position, so arithmetic without correction lands one unit away from the true sum.
The root cause is the two-zero representation. The numbers from -0 to +0 span one extra position compared to two's complement. End-around carry compensates for this by adding the escaped carry bit back into the low end. Two's complement eliminates this entirely by having only one zero, which is why it replaced one's complement in essentially all general-purpose hardware.