ToC DocOverview CGDoc RelNotes Index PermutedIndex
Allegro CL
Home Previous Up Next Table of Contents Index
  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.

Home Previous Up Next Table of Contents Index
© Franz Inc. 1998-2017 - File last updated 01-11-2017