一般情况下,判断奇偶数都会用如下的方法
public boolean isOdd(int number)
{
return number % 2 == 1;
}
但是一旦把负整数考虑进来,就会出现问题
当取余操作返回一个非零的结果时,它与左操作数具有相同的正负符号,也就是说,如果我们传入的参数是-1,运行以上方法后得到的结果是-1,而不是1
因此可以把方法改成
public boolean isOdd(int number)
{
return number % 2 != 0;
}
或者
public boolean isOdd(int number)
{
return (number & 1) != 0;
}
上面的&是位与运算,意思是number的二进制和1的二进制的每一位进行“与”运算,如果是奇数,得出的结果一定是1(包括负整数)