[erlang-questions] unary bitwise not

Richard O'Keefe ok@REDACTED
Thu Mar 5 01:57:30 CET 2009

Thinking about bitwise operations in terms of bytes is a good
way to get confused.  Binary numbers go *all* the way to the
The bottom line is that bnot X = -1 -X,
so I don't need to look at the bits to tell that bnot 153
*should* be -154.

(Hint: -1 is an infinite number of 1 bits, going *all* the way
to the left.  Subtracting a binary number from that bit pattern
doesn't involve any borrows.  In each column, 1 - 1 => 0, 1 - 0 => 1,
so this really does flip all the bits.)

More information about the erlang-questions mailing list