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