bit_length -> IntegerRuby 2.4.0 から[permalink][rdoc][edit]-
selfを表すのに必要なビット数を返します。「必要なビット数」とは符号ビットを除く最上位ビットの位置の事を意味します。
例: ceil(log2(int < 0 ? -int : int+1)) と同じ結果2**nの場合はn+1になります。selfにそのようなビットがない(0や-1である)場合は0を返します。p (-2**12-1).bit_length # => 13 p (-2**12).bit_length # => 12 p (-2**12+1).bit_length # => 12 p -0x101.bit_length # => 9 p -0x100.bit_length # => 8 p -0xff.bit_length # => 8 p -2.bit_length # => 1 p -1.bit_length # => 0 p 0.bit_length # => 0 p 1.bit_length # => 1 p 0xff.bit_length # => 8 p 0x100.bit_length # => 9 p (2**12-1).bit_length # => 12 p (2**12).bit_length # => 13 p (2**12+1).bit_length # => 13[SEE_ALSO] Integer#size