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