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

import java.util.Scanner;

public class BitShiftExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 整数の入力
        System.out.print("整数を入力してください: ");
        int number = scanner.nextInt();

        // シフトするビット数の入力
        System.out.print("シフトするビット数を入力してください: ");
        int shiftAmount = scanner.nextInt();

        // ビットシフト演算を実行
        int shiftedResult = number << shiftAmount;

        // 結果を表示
        System.out.println("シフト結果: " + shiftedResult);

        scanner.close();
    }
}

このプログラムは、ユーザーから整数とシフトするビット数を受け取り、左シフト演算子 << を使用して整数を指定されたビット数だけ左にシフトします。そして、結果を表示します。ユーザーが入力した整数を指定されたビット数だけ左にシフトすることで、ビットが左に移動し、整数の値が変化します。

ビットシフト

「ビットシフト」とは、主にビット単位でのデータの移動や操作を指すプログラミング用語です。シフト操作は、ビット列内のビット(0または1)を指定された方向に移動させることを意味します。

主なシフト操作には、左シフト(ビットを左に移動)と右シフト(ビットを右に移動)の2つがあります。

  1. 左シフト(Left Shift):
    • 左シフト演算子は通常 << で表されます。
    • 整数を指定されたビット数だけ左に移動させ、新たに空白で埋められたビットは0になります。
    • 左シフトによって数値は2のべき乗倍に増加します。たとえば、整数1を1ビット左にシフトすると2になります。
  2. 右シフト(Right Shift):
    • 右シフト演算子は通常 >> で表されます。
    • 整数を指定されたビット数だけ右に移動させます。新たに空白で埋められるビットの値は、通常、元の最上位ビット(最左端のビット)の値と同じです。
    • 右シフトによって数値は2のべき乗で割られます。たとえば、整数4を1ビット右にシフトすると2になります。

ビットシフトは、主に以下のような用途で使用されます:

  • 整数の2進数表現を操作し、ビットマスクを生成するため。
  • 2進数表現の値を倍増または半分にするため。
  • ハードウェア制御やデータ圧縮アルゴリズムで使用されるビット操作を実行するため。

ビットシフトは、プログラム内でビットレベルの操作を行う際に非常に有用で、効率的なアルゴリズムの実装に役立ちます。 Javaや他のプログラミング言語では、ビットシフト演算子を使用してビットシフトを実行できます。

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