本文简要介绍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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。