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.57 integer-length Function

Syntax:
integer-length integer    number-of-bits

Arguments and Values:
integer - an integer.

number-of-bits - a non-negative integer.

Description:
Returns the number of bits needed to represent integer in binary two's-complement format.

Examples:
 (integer-length 0)  0
 (integer-length 1)  1
 (integer-length 3)  2
 (integer-length 4)  3
 (integer-length 7)  3
 (integer-length -1)  0
 (integer-length -4)  2
 (integer-length -7)  3
 (integer-length -8)  3
 (integer-length (expt 2 9))  10
 (integer-length (1- (expt 2 9)))  9
 (integer-length (- (expt 2 9)))  9
 (integer-length (- (1+ (expt 2 9))))  10

Exceptional Situations:
Should signal an error of type type-error if integer is not an integer.

Notes:
This function could have been defined by:

(defun integer-length (integer)
  (ceiling (log (if (minusp integer)
                    (- integer)
                    (1+ integer))
                2)))

If integer is non-negative, then its value can be represented in unsigned binary form in a field whose width in bits is no smaller than (integer-length integer). Regardless of the sign of integer, its value can be represented in signed binary two's-complement form in a field whose width in bits is no smaller than (+ (integer-length integer) 1).

Allegro CL Implementation Details:
None.

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