A bitwise operator treats its operands as a vector of bits rather than a single number. Boolean bitwise operators combine bit N of each operand using a Boolean function (NOT, AND, OR, XOR) to produce bit N of the result. For example, a bitwise AND operator ("&" in C) would evaluate 13 & 9 as (binary) 1101 & 1001 = 1001 = 9, whereas, the logical AND, (C "&&") would evaluate 13 && 9 as TRUE && TRUE = TRUE = 1. In some languages, e.g. Acorn's BASIC V, the same operators are used for both bitwise and logical operations. This usually works except when applying NOT to a value x which is neither 0 (false) nor -1 (true), in which case both x and (NOT x) will be non-zero and thus treated as TRUE. Other operations at the bit level, which are not normally described as "bitwise" include shift and rotate. |