|
ANSI Common Lisp 12 Numbers 12.2 Dictionary of Numbers
12.2.71 mask-field |
Accessor |
- Syntax:
-
mask-field
bytespec integer
masked-integer
(setf
(mask-field bytespec place) new-masked-integer)
- Arguments and Values:
-
bytespec - a byte specifier.
integer - an integer.
masked-integer, new-masked-integer - a non-negative integer.
- Description:
-
mask-field performs a "mask" operation on integer.
It returns an integer that has the same bits as integer in
the byte specified by bytespec, but that has zero-bits everywhere else.
setf may be used with mask-field
to modify a byte within the integer that is stored
in a given place.
The effect is to perform a deposit-field operation
and then store the result back into the place.
- Examples:
-
(mask-field (byte 1 5) -1) 32
(setq a 15) 15
(mask-field (byte 2 0) a) 3
a 15
(setf (mask-field (byte 2 0) a) 1) 1
a 13
- See Also:
-
byte,
ldb
- Notes:
-
(ldb bs (mask-field bs n)) ==(ldb bs n)
(logbitp j (mask-field (byte s p) n))
==(and (>= j p) (< j s) (logbitp j n))
(mask-field bs n) ==(logand n (dpb -1 bs 0))
- Allegro CL Implementation Details:
-
None.
|