Purpose
The
BITAND function treats its inputs and its output as vectors of bits; the output is the bitwise AND of the inputs.
The types of
expr1 and expr2 are NUMBER, and the result is of type NUMBER. If either argument to BITAND is NULL, the result is NULL.
The arguments must be in the range -(2(n-1)) .. ((2(n-1))-1). If an argument is out of this range, the result is undefined.
The result is computed in several steps. First, each argument A is replaced with the value
SIGN(A)*FLOOR(ABS(A)). This conversion has the effect of truncating each argument towards zero. Next, each argument A (which must now be an integer value) is converted to an n-bit two's complement binary integer value. The two bit values are combined using a bitwise AND operation. Finally, the resulting n-bit two's complement value is converted back to NUMBER.- The current implementation of
BITANDdefinesn= 128. - PL/SQL supports an overload of
BITANDfor which the types of the inputs and of the result are allBINARY_INTEGERand for whichn= 32.
The following example performs an
AND operation on the numbers 6 (binary 1,1,0) and 3 (binary 0,1,1):SELECT BITAND(6,3) FROM DUAL;
BITAND(6,3)
-----------
2
This is the same as the following example, which shows the binary values of 6 and 3. The
BITAND function operates only on the significant digits of the binary values:SELECT BITAND(
BIN_TO_NUM(1,1,0),
BIN_TO_NUM(0,1,1)) "Binary"
FROM DUAL;
Binary
----------
2
No comments:
Post a Comment