Accessor MASK-FIELD

UP


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のバイト内部と 同じビットを持っており、 それ以外の場所はゼロビットであるというものです。

setfmask-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

副作用

なし。

影響

なし。

例外

なし。

参考

byte, ldb

備考

(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))

TOP, Github