Accessor LDB
ldb
bytespec integer => byte
(
setf
(
ldb
bytespec place )
new-byte )
['lidib]
か['liduhb]
か['el'dee'bee]
bytespec - バイト指定子
integer - 整数
byte, new-byte - 非負の整数
ldb
はbytespecで指定されたintegerのバイトを展開し返却します。
ldb
は整数を返却し、 その内容は、 sを(byte-size bytespec)
、pを(byte-position bytespec)
としたとき、 返却値の2^(s-1)
から2^0
までのビットと integerの2^(p+s-1)
から2^p
までを同じものとし、 その他を全て0
ビットにしたものです。
setf
のldb
は、 与えられたplaceに格納されている integer内部のバイトを修正するときに使用します。 ldb
フォームがsetf
に指定されたときの評価の順番は、 正確に左から右で行います。 この効果は、dpb
の操作を実行し、 その結果をplace内に戻して格納するというものです。
ldb (byte 2 1) 10) => 1
(setq a (list 8)) => (8)
(setf (ldb (byte 2 1) (car a)) 1) => 1
(=> (10) a
なし。
なし。
なし。
byte
, byte-position
, byte-size
, dpb
logbitp j (ldb (byte s p) n))
(and (< j s) (logbitp (+ j p) n)) == (
一般的に、
ldb (byte 0 x) y) => 0 (
上記の関係は全ての値x, y, zで正当です。
歴史的にはldb
という名前はDEC PDP-10のアセンブリ言語から来ており、 load byte
を意味する命令です。