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.69 ldb Accessor

ldb bytespec integer    byte

(setf (ldb bytespec place) new-byte)

[ 'lidib ] or [ 'lidEb ] or [ 'el'dê'bê ]

Arguments and Values:
bytespec - a byte specifier.

integer - an integer.

byte, new-byte - a non-negative integer.

ldb extracts and returns the byte of integer specified by bytespec.

ldb returns an integer in which the bits with weights 2(s-1) through 20 are the same as those in integer with weights 2(p+s-1) through 2p, and all other bits zero; s is (byte-size bytespec) and p is (byte-position bytespec).

setf may be used with ldb to modify a byte within the integer that is stored in a given place. The order of evaluation, when an ldb form is supplied to setf, is exactly left-to-right. The effect is to perform a dpb operation and then store the result back into the place.

 (ldb (byte 2 1) 10)  1
 (setq a (list 8))  (8)
 (setf (ldb (byte 2 1) (car a)) 1)  1
 a  (10)

See Also:
byte, byte-position, byte-size, dpb

 (logbitp j (ldb (byte s p) n))
    ==(and (< j s) (logbitp (+ j p) n))

In general,

 (ldb (byte 0 x) y)  0

for all valid values of x and y.

Historically, the name "ldb" comes from a DEC PDP-10 assembly language instruction meaning "load byte."

Allegro CL Implementation Details:

Home Previous Up Next Table of Contents Index
© Franz Inc. All Rights Reserved - File last updated 2022-07-25