当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2022-10-15
位运算是我们学习计算机时,常面对的计算,但是他的实际用途,我们无法知晓,下文笔者将讲述使用位运算的方式验证奇数,偶数的方法,如下所示: 下文是笔者验证一个数是否为奇

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

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

实现原理:

    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;
}
上一篇:Unsafe类,你知道多少呢?
下一篇:没有了
网友评论