jspωiki
Bitwise AND

Overview#

Bitwise AND takes two equal-length binary representations and performs the logical AND operation on each pair of the corresponding bits, which is equivalent to multiplying them.

Thus, if both bits in the compared position are 1, the bit in the resulting binary representation is:

  • 1 (1 × 1 = 1)
  • 0 (1 × 0 = 0 and 0 × 0 = 0).

Bitwise AND example:

Bitwise AND may be used to determine whether a particular bit is set (1) or clear (0).
For example, given a bit pattern 0011 (decimal 3), to determine whether the second bit is set we use a bitwise AND with a bit pattern containing 1 only in the second bit:

Because the result 0010 is non-zero, we know the second bit in the original pattern was set. This is often called bit masking. (By analogy, the use of masking tape covers, or masks, portions that should not be altered or portions that are not of interest. In this case, the 0 values mask the bits that are not of interest.)

Bitwise AND may be used to clear selected bits (or flags) of a register in which each bit represents an individual Boolean state. This technique is an efficient way to store a number of Boolean values using as little memory as possible.
For example, 0110 (decimal 6) can be considered a set of four flags, where the first and fourth flags are clear (0), and the second and third flags are set (1). The second bit may be cleared by using a bitwise AND with the pattern that has a zero only in the second bit:

Because of this property, it becomes easy to check the parity of a binary number by checking the value of the lowest valued bit. Using the example above:
Because 6 AND 1 is zero, 6 is divisible by two and therefore even.

More Information#

There might be more information for this subject on one of the following: