Apropos

ldbAccessor

    Syntax

    ldb bytespec integer byte

    (setf (ldb bytespec place) new-byte)

    Pronunciation

    [ lidib ] or [ lidϵb ] or [ el dē bē ]

    Arguments and Values

    bytespec — a byte specifier.

    integer — an integer.

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

    Description

    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.

    Examples
    (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

    Notes
    (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.”