1
44
这个答案之所以有效,是因为2的补码符号的设计方式。 首先,举个例子。假设我们有8位有符号整数。
位和将给你
如果数字不是2的幂:
您的结果仍然只有一个位,但它与原始值不匹配。因此,原始值设置了多个位。 此技术为0返回true,这可能是需要的,也可能是不需要的。 |
2
25
维基2的威力: here
其他位打开时的大小写
|
3
8
我建议你看一下 Bit Twiddling Hacks 翻页并在“下选择最合适的选项” Determining if an integer is a power of 2 “或” Counting bits set ". |
4
2
|
5
1
说明:0x80000000000000是64位寄存器的最高“仅1位”值。只有除以另一个“仅1位”值,才不会产生余数。 |
6
0
|
7
0
Python3高效内存解决方案
|
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
Manny · 如何比较Perl中的字符串? 2 年前 |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |