Function INTEGER-LENGTH

UP


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の補数フォームとして表現することができます。


TOP, Github