Accessor MASK-FIELD
mask-field
bytespec integer => masked-field
(
setf
(
mask-field
bytespec place )
new-masked-field )
bytespec - バイト指定子
integer - 整数
masked-integer, new-masked-integer - 非負の整数
mask-field
は、integerを「マスク」する処理を実施します。 この処理は整数を返却し、 その整数はbytespecによって指定されたintegerのバイト内部と 同じビットを持っており、 それ以外の場所はゼロビットであるというものです。
setf
のmask-field
は、 与えられたplaceに格納されている integer内部のバイトを修正するときに使用します。 この効果は、deposit-field
の操作を実行し、 その結果をplace内に戻して格納するというものです。
mask-field (byte 1 5) -1) => 32
(setq a 15) => 15
(mask-field (byte 2 0) a) => 3
(=> 15
a setf (mask-field (byte 2 0) a) 1) => 1
(=> 13 a
なし。
なし。
なし。
ldb bs (mask-field bs n)) == (ldb bs n)
(logbitp j (mask-field (byte s p) n))
(and (>= j p) (< j s) (logbitp j n))
== (mask-field bs n) == (logand n (dpb -1 bs 0)) (