1. 程式人生 > >菜鳥、普通、老鳥程式猿如何寫奇數判斷?--位操作符妙用

菜鳥、普通、老鳥程式猿如何寫奇數判斷?--位操作符妙用

背景:

在進行程式開發時,經常需要通過判斷一個整數是奇數還是偶數,來實現一些特殊的效果和功能,例如,讓表格的奇數行顯示一種背景顏色,偶數行顯示另一種背景顏色。那麼該如何判斷一個整數是奇數還是偶數呢?

讓我們來看一下不同的程式猿都是怎麼反應:

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