Function LOGCOUNT
logcount
integer => number-of-on-bits
integer - 整数
number-of-on-bits - 非負の整数
integerを2の補数表現としたとき、 その数のビットが「オン」か「セット」されてるものをカウントして返却します。 もしintegerが負のときは0
のビットがカウントされ、 それ以外は1
のビットがカウントされます。
logcount 0) => 0
(logcount -1) => 0
(logcount 7) => 3
(logcount 13) => 3 ;Two's-complement binary: ...0001101
(logcount -13) => 2 ;Two's-complement binary: ...1110011
(logcount 30) => 4 ;Two's-complement binary: ...0011110
(logcount -30) => 4 ;Two's-complement binary: ...1100010
(logcount (expt 2 100)) => 1
(logcount (- (expt 2 100))) => 100
(logcount (- (1+ (expt 2 100)))) => 1 (
なし。
なし。
引数が整数ではなかったとき、 型type-error
を通知する必要があります。
なし。
実装は、整数の内部表現が2の補数ではなかったとしても、 logcount
は本説明のように動作します。
下記の例は常に一致します。
logcount x)
(logcount (- (+ x 1)))
== (logcount (lognot x)) == (