我在一些练习中得到了这个示例代码,它展示了如何查找整数是奇数还是偶数。
int x = 4;
if ( (x & 1) == 0 )
{
System.out.println("even");
}
else
{
System.out.println("odd");
}
但我不明白你为什么要这样做“x & 1”。这样做的目的是什么?
最佳答案
在数字的二进制表示中,任何最低有效位设置为0
的数字都是偶数。了解 &
运算符的作用也很有帮助。
例如5 = 0101
(二进制)和1 = 0001
(二进制)。在本例中,它将 0101
与 0001
进行比较。
按位比较,因此第一位将是1 & 0 = 0
。第二位是0 & 0 = 0
。第三位是0 & 0 = 0
。最后一位是1 & 1 = 1
。
所以5 & 1 = 0001
,即十进制的1
。对于 x = 5
,1 == 0
的计算结果为 false。
对于所有其他偶数,最低有效数字是 0
,因此任何偶数 & 1
的计算结果始终为 0
。
关于java - 查找奇数/偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36021025/