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.68 dpb Function

dpb newbyte bytespec integer    result-integer

[ 'dE'pib ] or [ 'dE'pEb ] or [ 'dê'pê'bê ]

Arguments and Values:
newbyte - an integer.

bytespec - a byte specifier.

integer - an integer.

result-integer - an integer.

dpb (deposit byte) is used to replace a field of bits within integer. dpb returns an integer that is the same as integer except in the bits specified by bytespec.

Let s be the size specified by bytespec; then the low s bits of newbyte appear in the result in the byte specified by bytespec. Newbyte is interpreted as being right-justified, as if it were the result of ldb.

 (dpb 1 (byte 1 10) 0)  1024
 (dpb -2 (byte 2 10) 0)  2048
 (dpb 1 (byte 2 10) 2048)  1024

See Also:
byte, deposit-field, ldb

 (logbitp j (dpb m (byte s p) n))
 ==(if (and (>= j p) (< j (+ p s)))
        (logbitp (- j p) m)
        (logbitp j n))

In general,

 (dpb x (byte 0 y) z)  z

for all valid values of x, y, and z.

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

Allegro CL Implementation Details:

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