Why does this two's complement shortcut work?

Bob Brown

A shortcut method of forming the two's complement of a binary number is to copy bits from the right until a one-bit has been copied, then complement (invert) the remaining bits.

That's explained on SO here and also on Wikipedia.

What is not explained is why this shortcut works, that is, why does it produce the same result as inverting all the bits and adding one. So, my question is, why does this work?

D Stanley

It works because adding one to a binary number is accomplished by flipping all 1s to 0s from the right until a 0 is reached, flip that to 1 and stop (essentially carrying the overflow of adding 1 to 1).

So one method flips only the bits to the left of the first one, while the other flips all bits, then flips the first 1 (now 0) and the bits to the right of it back.

e.g.:

 01000100
 10111100  // copy bits until a 1 is reached, then flip the rest

vs

 01000100
 10111011  // invert all bits:
+       1  // add one
 10111100

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related