User Tools


Accessor LDB

Syntax

  • ldb bytespec integerbyte
  • (setf (ldb bytespec place) new-byte)

Arguments and Values

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 2^0 are the same as those in integer with weights 2^(p + s - 1) through 2^p, 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

(defparameter *a* (list 8)) *a* *a*

(8)

(setf (ldb (byte 2 1) (car *a*)) 1)

1

*a*

(10)

Side Effects

None.

Affected By

None.

Exceptional Situations

None.

See Also

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."

\issue{PUSH-EVALUATION-ORDER:FIRST-ITEM}