Function LOGCOUNT

UP


Function LOGCOUNT

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

TOP, Github