Ruby 2.1.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Bignumクラス > bit_length

instance method Bignum#bit_length

bit_length -> Integer[permalink][rdoc]

self を表すのに必要なビット数を返します。

「必要なビット数」とは符号ビットを除く最上位ビットの位置の事を意味します。2**n の場合は n+1 になります。self にそのようなビットがない(0 や -1 である)場合は 0 を返します。

例: ceil(log2(int < 0 ? -int : int+1)) と同じ結果

(-2**10000-1).bit_length  # => 10001
(-2**10000).bit_length    # => 10000
(-2**10000+1).bit_length  # => 10000

(-2**1000-1).bit_length   # => 1001
(-2**1000).bit_length     # => 1000
(-2**1000+1).bit_length   # => 1000

(2**1000-1).bit_length    # => 1000
(2**1000).bit_length      # => 1001
(2**1000+1).bit_length    # => 1001

(2**10000-1).bit_length   # => 10000
(2**10000).bit_length     # => 10001
(2**10000+1).bit_length   # => 10001

[SEE_ALSO] Fixnum#bit_length