% Accessor MASK-FIELD
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))