首頁 >Java >java教程 >在Java中反轉給定數字的實際位

在Java中反轉給定數字的實際位

PHPz
PHPz轉載
2023-09-07 23:41:061192瀏覽

在Java中反轉給定數字的實際位

給定一個非負整數 n。目標是反轉 n 的位,並報告結果數字。在反轉位時,使用整數的實際二進位形式;不考慮前導 0。

讓我們來看看各種輸入輸出狀況

##輸入 − 13

輸出 − 反轉給定數字11的實際位元

(13)<sub>10</sub> = (1101)<sub>2</sub>.
After reversing the bits, we get:
(1011)<sub>2</sub> = (11)<sub>10</sub>.

Explanation − 從輸入的數字中取得二進位位,然後將其反轉,並最終轉換為十進位格式,作為輸出傳回。

Input − 18

Output − 反轉給定數字9的實際位元。

(18)<sub>10</sub> = (10010)<sub>2</sub>.
After reversing the bits, we get:
(1001)<sub>2</sub> = (9)<sub>10</sub>.

Explanation − 二進位位元從輸入數字中獲取,然後被反轉並最終轉換為十進位格式,作為輸出傳回。

下面程式中使用的方法如下

  • 在主方法內部

    • 輸入數字並傳遞給方法

      reverseBinaryBits(int input)

  • #在方法

    reverseBinaryBits(int input) 內部

    • #初始化變數rev_input 以儲存反轉的位元

    • 循環迭代,直到輸入大於0(我們從右邊開始遍歷)

      • 使用位右移操作來逐位檢索n的二進位表示中的每一位,並使用位元左移操作來累積它們到rev 中

範例

class TutorialsPoint{
   public static int reverseBinaryBits(int input){
      int rev_input = 0;
      while (input > 0){
         rev_input <<= 1;
         if ((int) (input & 1) == 1){
            rev_input ^= 1;
         }
         input >>= 1;
      }
      return rev_input;
   }
   public static void main(String[] args){
      int input = 13;
      System.out.println("Reverse actual bits of the given number");
      System.out.println(reverseBinaryBits(input));
   }
}

輸出

如果我們執行上面的程式碼,它將產生以下輸出

Reverse actual bits of the given number
11

以上是在Java中反轉給定數字的實際位的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除