本文簡要介紹ruby語言中  Integer.bit_length  的用法。
用法
bit_length → integer返回 int 值的位數。
“Number of bits” 表示與符號位不同的最高位的位位置(其中最低有效位的位位置為 1)。如果沒有這樣的位(零或負一),則返回零。
IE。此方法返回 ceil(log2(int < 0 ? -int : int+1)) 。
(-2**1000-1).bit_length   #=> 1001
(-2**1000).bit_length     #=> 1000
(-2**1000+1).bit_length   #=> 1000
(-2**12-1).bit_length     #=> 13
(-2**12).bit_length       #=> 12
(-2**12+1).bit_length     #=> 12
-0x101.bit_length         #=> 9
-0x100.bit_length         #=> 8
-0xff.bit_length          #=> 8
-2.bit_length             #=> 1
-1.bit_length             #=> 0
0.bit_length              #=> 0
1.bit_length              #=> 1
0xff.bit_length           #=> 8
0x100.bit_length          #=> 9
(2**12-1).bit_length      #=> 12
(2**12).bit_length        #=> 13
(2**12+1).bit_length      #=> 13
(2**1000-1).bit_length    #=> 1000
(2**1000).bit_length      #=> 1001
(2**1000+1).bit_length    #=> 1001此方法可用於檢測 Array#pack  中的溢出,如下所示:
if n.bit_length < 32
  [n].pack("l") # no overflow
else
  raise "overflow"
end相關用法
- Ruby Integer.nobits?用法及代碼示例
- Ruby Integer.self >=用法及代碼示例
- Ruby Integer.self >>用法及代碼示例
- Ruby Integer.next用法及代碼示例
- Ruby Integer.self ** numeric用法及代碼示例
- Ruby Integer.truncate用法及代碼示例
- Ruby Integer.sqrt用法及代碼示例
- Ruby Integer.floor用法及代碼示例
- Ruby Integer.pred用法及代碼示例
- Ruby Integer.gcd用法及代碼示例
- Ruby Integer.allbits?用法及代碼示例
- Ruby Integer.downto用法及代碼示例
- Ruby Integer.times用法及代碼示例
- Ruby Integer.self <=>用法及代碼示例
- Ruby Integer.remainder用法及代碼示例
- Ruby Integer.self % other用法及代碼示例
- Ruby Integer.try_convert用法及代碼示例
- Ruby Integer.abs用法及代碼示例
- Ruby Integer.self / numeric用法及代碼示例
- Ruby Integer.succ用法及代碼示例
- Ruby Integer.inspect用法及代碼示例
- Ruby Integer.gcdlcm用法及代碼示例
- Ruby Integer.~int用法及代碼示例
- Ruby Integer.self * numeric用法及代碼示例
- Ruby Integer.fdiv用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Integer.bit_length。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
