ホームページ  >  記事  >  Java  >  Java で指定された数値の実際のビットを反転します。

Java で指定された数値の実際のビットを反転します。

PHPz
PHPz転載
2023-09-07 23:41:061137ブラウズ

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>.

説明 -入力数値からバイナリビットを取得し、それを反転して、最後に10進形式に変換し、出力として返されます。

入力 - 18

出力 - 指定された数値 9 の実際の桁を反転します。

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

説明 -バイナリビットが入力数値から取得され、反転されて、最後に10進形式に変換され、出力として返されます。

次のプログラムで使用するメソッドは次のとおりです

  • メインメソッド内

    • 数値を入力して渡しますメソッドへ reverseBinaryBits(int input)

  • メソッド内

    reverseBinaryBits(int input) Inside

    • 反転したビットを格納するために変数 rev_input を初期化します

    • 入力が 0 より大きくなるまでループを繰り返します (右からトラバースを開始します)

      • Use ビット右シフト演算を使用して 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));
   }
}

出力

上記のコードを実行すると、次の出力が生成されます

ああああ

以上がJava で指定された数値の実際のビットを反転します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。