Look at your post #3:
bradgrafelman wrote:Eh, it's actually just a one's complement
Decimal 2 is '00000010' as a signed binary number.
Flip each bit to get '11111101' which is -3 as a signed binary number.
If 11111101 represents -3, then you are using two's complement, not one's complement. Therefore, you must be wrong to say that one's complement is used.
But when I point this out to you, you turn around and talk about two's complement. Not very fair, is it? 🙂
EDIT:
To return to the pedantic accuracy of my post #2: actually, that 11111101 represents -3 does not imply that two's complement is used, but it is highly probable since standard C only allows for signed integers to be represented by using two's complement, one's complement, or sign and magnitude.
So, back to 3.grosz's question. Notice that 3.grosz observed that ~2 == -3. This corresponds very nicely to two's complement. Indeed, if we apply the method that you described, then from the 8 bit signed integer representation of 3, i.e., 00000011, we flip the bits to get 11111100, then we add 1 to get 11111101, which is the two's complement representation of -3. Now, from the 8 bit signed integer representation of 2, i.e., 00000010, we obtain ~2 by flipping the bits and get 11111101. So, we end up with the same representation, thus confirming that it is possible that two's complement is used, hence affirming that my suggestion is valid.
Try this using one's complement: we begin with 00000011, and flip the bits to get 11111100, which is the one's complement representation of -3. The earlier representation of ~2 has not changed, i.e., it is still 11111101, which is different from 11111100. This implies that your statement that "it's actually just a one's complement" is incorrect.