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
a => 15
(setf (mask-field (byte 2 0) a) 1) => 1
a => 13なし。
なし。
なし。
(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))