天天看點

使用位運算驗證一個數是否為奇數?

位運算是我們學習計算機時,常面對的計算,但是他的實際用途,我們無法知曉,下文筆者将講述使用位運算的方式驗證奇數,偶數的方法,如下所示:

下文是筆者驗證一個數是否為奇數的方法

實作原理:

    1.當一個數為正數時,其奇數二進制位的最後一位必須為1,采用這種對數進行驗證

    2.當一個數為負數時,先将其轉換為絕對值(~a+1),然後再對其進行驗證

package com.java265.algorithm;

/*
 * 判斷一個數 還是奇數,還是偶數(0也作為偶數)
 * */
public class CheckDataOddNumber {

    public static void main(String[] args) {

        int times = 1000000; // 測試次數
        boolean checkFlag = true;
        for (int i = 0; i < times; i++) {

            int a = 0;
        boolean b1 = isOddNumber1(a);
        boolean b2 = isOddNumber2(a);
        if (b1 != b2) {
            checkFlag = false;
        }

//        System.out.println(b1);
//        System.out.println(b2);

    }
        if (!checkFlag) {
            System.out.println("=======wrong!======");
        } else {
            System.out.println("=====good!======");

        }
    }

    /*
     * 是否為奇數
     */
    private static boolean isOddNumber1(int a) {
        // 是奇數
        boolean flag = true;
        if (a % 2 == 0) {
            flag = false;// 偶數
        }
        return flag;
    }

    /*
     * 是否為奇數 采用位運算的方式
     */
    private static boolean isOddNumber2(int a) {
        // 是奇數      

// 是奇數

boolean flag = true;

flag = ((((~a) + 1) & a) == 1);

return flag;

return flag;
    }

}      

繼續閱讀