003 演算子(ビット演算子) 023 解答例

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // スキャナーを使ってユーザーから2つの整数の入力を読み取る
        Scanner scanner = new Scanner(System.in);

        System.out.print("整数1を入力してください: ");
        int number1 = scanner.nextInt(); // 1つ目の整数の入力を読み取り
        System.out.print("整数2を入力してください: ");
        int number2 = scanner.nextInt(); // 2つ目の整数の入力を読み取り

        // 2つの整数のビット論理積を計算
        int result = number1 & number2; // AND演算を使用してビット論理積を計算

        // 結果を表示
        System.out.println("ビット論理積の結果: " + result);
    }
}

このプログラムでは、ユーザーから2つの整数を入力し、それらの整数のビット論理積を計算し、結果を表示しています。ビット論理積は、& 演算子を使用して計算されます。

ビット計算での論理積演算子

ビット計算での論理積演算子(AND演算子)は、ビットごとに2つの整数を比較し、対応するビットが両方の整数で1の場合に1を返し、それ以外の場合には0を返す演算子です。これはビット単位での論理演算を行うため、ビットマスクの生成や特定のビットの値を取得するのに役立ちます。

ビット計算の論理積演算子 & の動作は以下の通りです:

整数A:  10101100
整数B:  11011010
論理積: 10001000

各ビットが同じ位置にある2つの整数を取り、それぞれのビットについて以下のように計算します:
もし両方の整数の対応するビットが1であれば、結果のビットは1になります。
それ以外の場合、結果のビットは0になります。
以下はビット計算の論理積演算子の例です。例として、整数Aと整数Bのビットごとの論理積を計算します:

この場合、各ビットが一致しない箇所は0になり、一致する箇所は1になりました。

ビット計算の論理積演算子は、ビット操作やビットフラグの操作に非常に役立ちます。例えば、特定のビット位置を操作して特定の情報を取得したり、ビットマスクを使用して特定のフラグを設定/クリアするために使用されます。また、ハードウェアプログラミングや低レベルのデータ操作にも応用されます。

「003 演算子」問題集リスト