关于奇数,我们平常一般会使用如下方法去判断:
public static boolean isOdd(int i){
return i%2==1;
}
但是这样的代码对于正整数来说是OK的,但是对于负整数来说是不行的。因为返回将会是负整数。例如:
-3%2=-1;
总结一句话:上述判断方式是不全面的;
所以,推荐使用以下两种方式:
第一种:
public static boolean isOdd(int i){
return i%2!=0;
}
第二种:
使用位操作符AND(&)替代取余操作符:
public static boolean isOdd(int i){
return (i&1)!=1;
}
第二个版本运行起来比第一个版本要快得多;
总结:
无论何时使用了取余操作符,都要考虑操作数和结果的符号;