以下の関数は,整数をビット列とみなし,
そのビット列に対して論理演算などを行い,
結果を整数として返すものである.
以下の例では,便宜上,結果を進数で表すが,
実際の出力とは異なることに注意されたい.
〈整数〉
〈整数
〉 のビットごとの論理積を返す. 無引数の場合は -1を返す.
例:
(logand #b1010 #b1100)#b1000
〈整数〉
〈整数
〉 のビットごとの論理和を返す. 無引数の場合は 0を返す.
例:
(logior #b1010 #b1100)#b1110
〈整数〉
〈整数
〉 のビットごとの 排他的論理和を返す. 無引数の場合は 0を返す.
例:
(logxor #b1010 #b1100)#b0110
〈整数〉 のビットごとの論理否定を返す.
例:
(lognot #b10)-3
〈整数〉 のビット列を 〈整数
〉 ビットだけ右にシフトした結果を返す. 〈整数
〉 が 0なら 〈整数
〉 をそのまま返す.
例:
(logshr #b10110 2)#b101
〈整数〉 のビット列を 〈整数
〉 ビットだけ左にシフトした結果を返す. 〈整数
〉 が 0なら 〈整数
〉 をそのまま返す.
例:
(logshl #b10110 2)#b1011000