The bc.bit() function
performs broadcasted bit-wise operations
on pairs of arrays, where both arrays are of type raw or both arrays are of type integer.
Usage
bc.bit(x, y, op, ...)
# S4 method for ANY
bc.bit(x, y, op)
Value
For bit-wise operators:
An array of the same type as x and y,
as a result of the broadcasted bit-wise operation.
Arguments
x, y
conformable raw or integer (32 bit) vectors/arrays.
op
a single string, giving the operator.
Supported bit-wise operators: &, |, xor, nand, <<, >>, ==, !=, <, >, <=, >=.
...
further arguments passed to or from methods.
Details
The "&", "|", "xor", and "nand" operators given in bc.bit()
perform BIT-WISE AND, OR, XOR, and NAND operations, respectively.
The relational operators given in bc.bit() perform BIT-WISE relational operations:
"==" is equivalent to bit-wise (x & y) | (!x & !y), but faster;
"!=" is equivalent to bit-wise xor(x, y);
"<" is equivalent to bit-wise (!x & y), but faster;
">" is equivalent to bit-wise (x & !y), but faster;
"<=" is equivalent to bit-wise (!x & y) | (y == x), but faster;
">=" is equivalent to bit-wise (x & !y) | (y == x), but faster.
The "<<" and ">>" operators perform bit-wise left-shift and right-shift,
respectively,
on x by unit y.
For these shift operations,
y being larger than the number of bits of x results in an error.
Shift operations are only supported for type of raw.