% Function INTEGER-LENGTH
Function INTEGER-LENGTH
integer-length
integer => number-of-bits
integer - 整数
number-of-bits - 非負の整数
integerを2の補数フォーマットで表現するのに 必要なビット数を返却します。
(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
なし。
なし。
integerが整数ではないとき、型type-error
のエラーを通知するべきです。
なし。
この関数は次のように定義できます。
(defun integer-length (integer)
(ceiling (log (if (minusp integer)
(- integer)
(1+ integer))
2)))
もしintegerが負の数ではないとき、
その値は(integer-length intger)
の返却値より小さくはない
ビット数の幅の符号なしバイナリフォームとして表現することができます。
integerの符号に関わらず、
その値は(+ (integer-length integer) 1)
の返却値より小さくはない
ビット数の幅の符号ありバイナリの2の補数フォームとして表現することができます。