![[HARLEQUIN]](../Graphics/Harlequin-Small.gif)
![[Previous]](../Graphics/Prev.gif)
![[Up]](../Graphics/Up.gif)
![[Next]](../Graphics/Next.gif)
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
Side Effects: None.
Affected By: None.
Exceptional Situations:
Should signal an error of type type-error if integer is not an integer.
See Also: None.
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).
![[Starting Points]](../Graphics/Starting-Points.gif)
![[Contents]](../Graphics/Contents.gif)
![[Index]](../Graphics/Index.gif)
![[Symbols]](../Graphics/Symbols.gif)
![[Glossary]](../Graphics/Glossary.gif)
![[Issues]](../Graphics/Issues.gif)