位運算是我們學習計算機時,常面對的計算,但是他的實際用途,我們無法知曉,下文筆者將講述使用位運算的方式驗證奇數,偶數的方法,如下所示:
下文是筆者驗證一個數是否為奇數的方法
實作原理:
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; if (((1 << 32) & a) == 1) { //正數判斷方式 flag = (((~1) ^ a) == 0); } if (((1 << 32) & a) == 0) { //負數判斷方式 flag = ((((~1) ^ ((~a) + 1))) == 0); } return flag; } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/356246.html
標籤:其他
上一篇:惡補 Java 基礎
