本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。