ビットセット

Last-modified: 2011-05-06 (金) 17:15:34

整数型(int型)データは32桁のビットの集合でもあるので、0 を偽値、1 を真値とする論理値の集合としても扱うことができる。

関数

関数説明
(leftshift bs n)ビットセット値 bs を n ビット分だけ左にシフトさせた値を返す。右側ビットは 0 で埋められる。
(rightshift bs n)ビットセット値 bs を n ビット分だけ右にシフトさせた値を返す。左側ビットは 0 で埋められる。
(bnot bs)引数のビットセットの各ビットごとの論理否定した値を返す。
(band bs1 bs2 …)引数のビットセットの各ビットごとの論理積を返す。
(bor bs1 bs2 …)引数のビットセットの各ビットごとの論理和を返す。
(bxor bs1 bs2 …)引数のビットセットの各ビットごとの排他的論理和を左側から順に求めた値を返す。
(bnand bs1 bs2 …)(bnot (band bs1 bs2 …)) と等価。
(bnor bs1 bs2 …)(bnot (bor bs1 bs2 …)) と等価。
bs << n(leftshift bs n) と等価(中置記法の糖衣構文)
bs >> n(rightshift bs n) と等価(中置記法の糖衣構文)
˜bs(bnot bs) と等価(中置記法の糖衣構文)
bs1 & bs2(band bs1 bs2) と等価(中置記法の糖衣構文)
bs1 ¦ bs2(bor bs1 bs2) と等価(中置記法の糖衣構文)
bs1 ˆ bs2(bxor bs1 bs2) と等価(中置記法の糖衣構文)

上記の関数はすべて、nil と t による論理値の演算とは異なるものであるので、注意すること。