奇数性之谜

来源:互联网 发布:随机算法公式 编辑:程序博客网 时间:2024/06/11 08:32

关于奇数,我们平常一般会使用如下方法去判断:

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;}

第二个版本运行起来比第一个版本要快得多;
总结:
无论何时使用了取余操作符,都要考虑操作数和结果的符号;

0 0
原创粉丝点击