0 ~= b0000000
Now, when we subtract 1, ask "are we in signed world or unsigned world"? If
in signed world, we want the answer to be -1
. If in unsigned world
we want the answer to be 255.
0 - 1
= b0000000 - b00000001
= b11111111
=unsigned= 255
If we wanted to interpret the answer as signed , then we are free to do so.
This automatically tell us that
0 - 1
=unsigned= b11111111
=signed= -1
So, the advantage is that our operations don't care about whether the
number is signed/unsigned.