The bitwise NOT operator (the ~
operator) generates a new value with the bits of its operand inverted. Each 1 bit is set to 0; each 0 bit is set to 1:
Here, our char
operand is first promoted to int
. Promoting a char
to int
leaves the value unchanged but adds 0 bits to the high order positions. Thus, promoting bits
to int
adds 24 high order bits, all of which are 0-valued. The bits in the promoted value are inverted.