|
ANSI Common Lisp 12 Numbers 12.2 Dictionary of Numbers
12.2.64 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))
- Allegro CL Implementation Details:
-
None.
|