在整数中,不能被2整除的数叫做奇数.
所以,一直以来,我判断一个数是否是奇数,都是这么写:
public static boolean isOdd(int i)
{
return (i % 2) == 1;
}
如果输入的数是正整数,那么程序没有问题.
但是如果输入的是负数,根据java取模运算的规则,余数总与左操作数符号保持一致,
这个函数会返回错误的结果.
所以,应该用以下这种写法:
public static boolean isOdd(int i)
{
return (i & 1) == 1;
}