zoukankan      html  css  js  c++  java
  • 菜鸟、普通、老鸟程序猿如何写奇数判断?--位操作符妙用

    背景:

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

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

    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

  • 相关阅读:
    移动端H5 QQ在线客服链接代码
    sql语句的优化技巧
    获取网页高度
    微信抽奖游戏
    H5中section和article标签之间的区别
    简易版九宫格相加数值相等
    两个单体内置对象_Global和Math
    特殊的引用类型
    引用类型-Array类型(二)~ 前端学习之路
    引用类型-Array类型~ 前端学习之路
  • 原文地址:https://www.cnblogs.com/davidwang456/p/11436037.html
Copyright © 2011-2022 走看看