位運算是我們學習計算機時,常面對的計算,但是他的實際用途,我們無法知曉,下文筆者将講述使用位運算的方式驗證奇數,偶數的方法,如下所示:
下文是筆者驗證一個數是否為奇數的方法
實作原理:
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;
}
}