菜鸟、普通、老鸟程序猿如何写奇数判断?--位操作符妙用

背景:

在进行程序开发时,经常需要通过判断一个整数是奇数还是偶数,来实现一些特殊的效果和功能,例如,让表格的奇数行显示一种背景颜色,偶数行显示另一种背景颜色。那么该如何判断一个整数是奇数还是偶数呢?

让我们来看一下不同的程序猿都是怎么反应:

1. 菜鸟程序猿

菜鸟、一般、老鸟程序猿如何写奇数判断?

 

代码就是一个撸字:

public class TestOdd {
    public static void main(String[] args) {
        int oddNum=153;
        System.out.println(isOdd(oddNum));
        int evenNum=9284;
        System.out.println(isOdd(evenNum));
    }
    
    public static boolean isOdd(int i){
        return i % 2 == 1;
        }
}

 

搞定!

2. 普通程序猿

上面的代码一看就是菜鸟写的,都没有考虑int的取值范围,看老孙俺的!

菜鸟、一般、老鸟程序猿如何写奇数判断?

 

public class TestOdd {
    public static void main(String[] args) {
     /**
     * A constant holding the minimum value an {@code int} can
     * have, -2<sup>31</sup>.     
     @Native public static final int MIN_VALUE = 0x80000000;
     * A constant holding the maximum value an {@code int} can
     * have, 2<sup>31</sup>-1.     
     @Native public static final int MAX_VALUE = 0x7fffffff;
     */
        int oddNum=Integer.MAX_VALUE;
        System.out.println(isOdd(oddNum));
        int evenNum=Integer.MIN_VALUE;
        System.out.println(isOdd(evenNum));
    }
    
    public static boolean isOdd(int i){
        return i % 2!=0;//如果一个数是偶数,就算是负数整除2余数也为0
        }
}

 

老鸟程序猿

菜鸟、一般、老鸟程序猿如何写奇数判断?

 

现在的年轻人都不懂的珍惜呀!%2 很浪费资源的,使用&比较省事。

public class TestOdd {
    public static void main(String[] args) {
     /**
     * A constant holding the minimum value an {@code int} can
     * have, -2<sup>31</sup>.     
     @Native public static final int MIN_VALUE = 0x80000000;
     * A constant holding the maximum value an {@code int} can
     * have, 2<sup>31</sup>-1.     
     @Native public static final int MAX_VALUE = 0x7fffffff;
     */
        int oddNum=Integer.MAX_VALUE;
        System.out.println(isOdd(oddNum));
        int evenNum=Integer.MIN_VALUE;
        System.out.println(isOdd(evenNum));
    }
    
    public static boolean isOdd(int i){
        return (i & 1)!=0;//1的十六进制为0x00000001,本质是取二进制的最后一位的值
        }
}

 

菜鸟、一般、老鸟程序猿如何写奇数判断?

 

另外记住:除法的话,如是2的x次方的话,使用移位更快哦。

总结:

判断奇数和偶数在实际生产和生活中也经常使用,具有重大意义,因此程序中也经常需要对奇数和偶数进行处理,例如在使用循环输出信息时,可以在循环变量是奇数时,输出一种符号,是偶数时输出另一种符号。

 

参考资料

【1】java解惑

【2】https://zhidao.baidu.com/special/view?id=ee785a24626975510400

转载于:https://www.cnblogs.com/davidwang456/p/11436037.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值