位运算是我们学习计算机时,常面对的计算,但是他的实际用途,我们无法知晓,下文笔者将讲述使用位运算的方式验证奇数,偶数的方法,如下所示: 下文是笔者验证一个数是否为奇
位运算是我们学习计算机时,常面对的计算,但是他的实际用途,我们无法知晓,下文笔者将讲述使用位运算的方式验证奇数,偶数的方法,如下所示:
下文是笔者验证一个数是否为奇数的方法
实现原理:
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;
}