next up previous contents index
: 数値と文字列の相互変換 : 数値 : その他の算術演算   目次   索引

整数上の論理演算

以下の関数は,整数をビット列とみなし, そのビット列に対して論理演算などを行い, 結果を整数として返すものである. 以下の例では,便宜上,結果を$2$進数で表すが, 実際の出力とは異なることに注意されたい.

(logand 〈整数$_1$$\cdots$〈整数$_n$〉) 【関数】

〈整数$_1$$\sim$ 〈整数$_n$〉 のビットごとの論理積を返す. 無引数の場合は -1を返す.

例:
(logand #b1010 #b1100) $\Rightarrow$ #b1000

(logior 〈整数$_1$$\cdots$〈整数$_n$〉) 【関数】

〈整数$_1$$\sim$ 〈整数$_n$〉 のビットごとの論理和を返す. 無引数の場合は 0を返す.

例:
(logior #b1010 #b1100) $\Rightarrow$ #b1110

(logxor 〈整数$_1$$\cdots$〈整数$_n$〉) 【関数】

〈整数$_1$$\sim$ 〈整数$_n$〉 のビットごとの 排他的論理和を返す. 無引数の場合は 0を返す.

例:
(logxor #b1010 #b1100) $\Rightarrow$ #b0110

(lognot 〈整数〉) 【関数】

〈整数〉 のビットごとの論理否定を返す.

例:
(lognot #b10) $\Rightarrow$ -3

(logshr 〈整数$_1$〉〈整数$_2$〉) 【関数】

〈整数$_1$〉 のビット列を 〈整数$_2$〉 ビットだけ右にシフトした結果を返す. 〈整数$_2$〉 が 0なら 〈整数$_1$〉 をそのまま返す.

例:
(logshr #b10110 2) $\Rightarrow$ #b101

(logshl 〈整数$_1$〉〈整数$_2$〉) 【関数】

〈整数$_1$〉 のビット列を 〈整数$_2$〉 ビットだけ左にシフトした結果を返す. 〈整数$_2$〉 が 0なら 〈整数$_1$〉 をそのまま返す.

例:
(logshl #b10110 2) $\Rightarrow$ #b1011000


next up previous contents index
: 数値と文字列の相互変換 : 数値 : その他の算術演算   目次   索引
Tsuneyasu KOMIYA 平成14年2月22日