|
ANSI Common Lisp 15 Arrays 15.2 Dictionary of Arrays
15.2.34 bit-and, bit-andc1, bit-andc2, bit-eqv, bit-ior, bit-nand, bit-nor, bit-not, bit-orc1, bit-orc2, bit-xor |
Function |
- Syntax:
-
bit-and bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-andc1 bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-andc2 bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-eqv bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-ior bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-nand bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-nor bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-orc1 bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-orc2 bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-xor bit-array1 bit-array2 &optional
opt-arg | resulting-bit-array |
bit-not
bit-array &optional opt-arg
resulting-bit-array
- Arguments and Values:
-
bit-array, bit-array1, bit-array2 - a bit array.
Opt-arg - a bit array, or t, or nil.
The default is nil.
Bit-array, bit-array1, bit-array2, and opt-arg
(if an array) must all be of the same rank and dimensions.
resulting-bit-array - a bit array.
- Description:
-
These functions perform
bit-wise logical operations on bit-array1 and bit-array2
and return an array
of matching rank and dimensions,
such that any given bit of the result
is produced by operating on corresponding bits from each of the arguments.
In the case of bit-not, an array
of rank and dimensions matching bit-array
is returned that contains a copy of bit-array
with all the bits inverted.
If opt-arg is of type (array bit) the contents of the
result are destructively placed into opt-arg.
If opt-arg is the symbol t,
bit-array or bit-array1 is replaced with the result;
if opt-arg is nil or omitted, a new array is created
to contain the result.
The next figure indicates the logical operation
performed by each of the functions.
Bit-wise Logical Operation
Function |
Operation |
bit-and | and |
bit-eqv | equivalence (exclusive nor) |
bit-not | complement |
bit-ior | inclusive or |
bit-xor | exclusive or |
bit-nand | complement of bit-array1 and bit-array2 |
bit-nor | complement of bit-array1 or bit-array2 |
bit-andc1 | and complement of bit-array1 with bit-array2 |
bit-andc2 | and bit-array1 with complement of bit-array2 |
bit-orc1 | or complement of bit-array1 with bit-array2 |
bit-orc2 | or bit-array1 with complement of bit-array2 |
- Examples:
-
(bit-and (setq ba #*11101010) #*01101011) #*01101010
(bit-and #*1100 #*1010) #*1000
(bit-andc1 #*1100 #*1010) #*0010
(setq rba (bit-andc2 ba #*00110011 t)) #*11001000
(eq rba ba) true
(bit-not (setq ba #*11101010)) #*00010101
(setq rba (bit-not ba
(setq tba (make-array 8
:element-type 'bit))))
#*00010101
(equal rba tba) true
(bit-xor #*1100 #*1010) #*0110
- See Also:
-
lognot, logand
- Allegro CL Implementation Details:
-
None.
|