ToC DocOverview CGDoc RelNotes Index PermutedIndex
Allegro CL
Home Previous Up Next Table of Contents Index
  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.

Home Previous Up Next Table of Contents Index
© Franz Inc. 1998-2019 - File last updated 02-07-2019