mask-field
bytespec integer ⇒ masked-integer
(setf ( mask-field
bytespec place) new-masked-integer)
bytespec | a byte specifier. |
integer | an integer. |
masked-integer, new-masked-integer | a non-negative integer. |
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.
(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
(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))