logcount
logcount Function
Syntax:
logcount integer → number-of-on-bits
Arguments and Values:
integer—an integer .
number-of-on-bits—a non-negative integer .
Description:
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.
Examples:
(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
Exceptional Situations:
Should signal type-error if its argument is not an integer .
Notes:
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))
Expanded Reference: logcount
tip
TODO: Please contribute to this page by adding explanations and examples
(logcount )