CLHS: Function DPB

#

Function DPB

Syntax:

dpb newbyte bytespec integer => result-integer

Pronunciation:

[,duh'pib] or [,duh'puhb] or ['dee'pee'bee]

Arguments and Values:

newbyte---an integer.

bytespec---a byte specifier.

integer---an integer.

result-integer---an integer.

Description:

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.

Examples:

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

Side Effects: None.

Affected By: None.

Exceptional Situations: None.

See Also:

byte, deposit-field, ldb

Notes:

     (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.''

Copyright 1996-2005, LispWorks Ltd. All rights reserved.