integer—an integer.
number-of-on-bits—a non-negative integer.
Computes and returns the number of bits
in the two's-complement binary representation of integer
that are `on' or `set'.
If integer is negative, the 0
bits are counted;
otherwise, the 1
bits are counted.
(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
Should signal type-error
if its argument is not an integer.
Even if the implementation does not represent integers internally
in two's complement binary, logcount
behaves as if it did.
The following identity always holds:
(logcount x) ≡ (logcount (- (+ x 1))) ≡ (logcount (lognot x))