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
BITAND
definesn
= 128. - PL/SQL supports an overload of
BITAND
for which the types of the inputs and of the result are allBINARY_INTEGER
and 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