Java
 Computer >> コンピューター >  >> プログラミング >> Java

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


負ではない整数nを指定します。目標は、nのビットを逆にして、その結果として生じる数を報告することです。ビットを反転するときは、整数の実際のバイナリ形式が使用されます。先頭の0は考慮されません。

このためのさまざまな入出力シナリオを見てみましょう

入力 − 13

出力 −指定された数値11の実際のビットを反転します

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

説明 − 2進ビットは入力番号から取得され、その後反転され、最後に10進形式に変換されて出力として返されます。

入力 − 18

出力 −指定された数値9の実際のビットを反転します

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

説明 − 2進ビットは入力番号から取得され、その後反転され、最後に10進形式に変換されて出力として返されます。

以下のプログラムで使用されているアプローチは次のとおりです

  • メインメソッドの内部

    • 数値は入力され、メソッド reverseBinaryBits(int input)に渡されます

  • メソッド内reverseBinaryBits(int input)

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

    • ループはブレークポイントで繰り返されます(入力> 0)(右からトラバースしています)

      • ビット単位の右シフト演算は、nのバイナリ表現でビットを1つずつ取得するために使用され、ビット単位の左シフト演算は、それらを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

  1. JavaでJPasswordField内の桁数を制限するにはどうすればよいですか?

    JPasswordField JTextFieldのサブクラスです また、JPasswordFieldに入力された各文字は、エコーに置き換えることができます。 キャラクター。これにより、パスワードの機密入力が可能になります。 JPasswordFieldの重要なメソッドは、 getPassword()、getText()、getAccessibleContext()です。 デフォルトでは、JPasswordField内に任意の桁数を入力できます。 DocumentFilterクラスを実装して、ユーザーが入力する数字を制限する場合 replace()をオーバーライドする必要があります メソ

  2. Javaで数を数えるプログラムを実装するにはどうすればよいですか?

    プログラムはJLabelを使用します カウントラベルを保持するには、 JTextField 数値を保持するコンポーネントカウント 、 JButton 追加を作成するコンポーネント 、削除 およびリセット ボタン。追加ボタンをクリックすると、JTextFieldのカウントがインクリメントされます 投稿者 1 削除ボタンをクリックすると、カウントが「1」ずつ減らされます。 [リセット]ボタンをクリックすると、リセットされます 0へのカウント 。 例 import java.awt.*; import java.awt.event.*; import javax.swing.*; publ