BitAnd
The BitAnd function returns the bit-wise AND of two numbers. Use the bit-wise AND to find the bits in common between two numbers.
nResult = BitAnd( n1, n2 ) |
The AND of two numbers saves the bits in common and discards those in one number but not the other. For example, consider the numbers 4 and 16 which, in binary notation are expressed 100 and 10000. The bit-wise AND gives 0 because there are no bits "on" at the same position in both numbers. However, 5 and 17 have a common bit in the 1's place (101 and 10001) so (5 AND 17) = 1,
The AND operation is often used to select one or more specific bits from a number. This is done by AND-ing the number with a "bit mask" made from the bits to be tested. For example, to test the "2" bit of a number, create a bit mask with value 10 binary, which is decimal 2. The result of (number AND 2) then gives 2 if the "2 bit" is "on", or it gives 0 if the 2 bit is "off". You also can use BitTest to determine whether a bit at a specified position is a "on" or "off" (i.e., 1 or 0).
The AND operation is often used to unpack a series of "bit flags" (i.e., 1, 2, 4, 8, 16, ... ) that were merged into a single number using the OR operation (see BitOr).
The following script performs the AND of two numbers. Note that the result is printed using %u because it is considered an unsigned (i.e., 0 or positive) integer.
|
-- pick two numbers |
|
-- prints the result 2 |