Two's complement of 255
The 16-bit two's complement of 255 is 1111111100000001, the pattern for -255. Because 255 is larger than 127 it does not fit in a signed 8-bit byte, so as a positive signed value it needs 16 bits: 0000000011111111.
Invert and add 1
Here is the two's complement of 255 at 16 bits, step by step (invert the bits of 255 and add 1):
- Write 255 in 16-bit binary:
0000000011111111. - Invert every bit (the one's complement):
1111111100000000. - Add 1:
1111111100000001.
255 at 4, 8, and 16 bits
| Width | 255 as a signed number | Two's complement of 255 |
|---|---|---|
| 4-bit | — | — |
| 8-bit | — | — |
| 16-bit | 0000000011111111 | 1111111100000001 |
A dash means 255 (or its negation) is outside that width's signed range: 4-bit two's complement holds -8 to 7, 8-bit holds -128 to 127, and 16-bit holds -32768 to 32767.
Watch out for the 8-bit trap: as an unsigned 8-bit value 255 is 11111111, but read as signed two's complement that same pattern means -1, not 255. That is exactly why 255 needs more than 8 signed bits.
Convert any number
Two's complement is how computers store signed integers, so one adder can both add and subtract. Read the full two's complement lesson, or convert any value at 8, 16, or 32 bits with the two's complement calculator.
Want to see two's complement do real work? Open the lab and wire a subtractor from an adder and inverters, or follow the free course from a transistor up to an 8-bit CPU.
Open the two's complement calculator →Frequently asked
What is the two's complement of 255?
The 16-bit two's complement of 255 is 1111111100000001, the bit pattern for -255. You get it by writing 255 in binary (0000000011111111), inverting every bit (1111111100000000), then adding 1.
How do you write 255 in two's complement?
255 does not fit in signed 8 bits (which stop at 127). In 16-bit two's complement it is 0000000011111111.
What is 255 in 16-bit two's complement?
255 in 16-bit two's complement is 0000000011111111. Two's complement sign-extends a shorter value by copying the sign bit to the left, so the value is unchanged from its 16-bit form.