使用位运算验证一个数是否为奇数?

使用位运算验证一个数是否为奇数?

位运算是我们学习计算机时,常面对的计算,但是他的实际用途,我们无法知晓,下文笔者将讲述使用位运算的方式验证奇数,偶数的方法,如下所示:

下文是笔者验证一个数是否为奇数的方法

实现原理:

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

}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 使用位运算验证一个数是否为奇数?