Java の左シフトと右シフトの演算規則は何ですか?

Javaにおいて、シフト演算子として左シフトと右シフトというビット演算があり、整数にビット演算を行います。

  1. 左シフト演算子(<<):数値のすべての 2 進数ビットを指定されたビット数だけ左にシフトし、右側で空いたビットは 0 で埋められます。左シフト演算子の構文は次のとおりです。a << b。ここで、a はビットシフト演算を実行する数値で、b は左にシフトするビット数です。

ネイティブな日本語で言い換えると、例えば、

int a = 5; // 2進数表記: 00000101

int b = a << 2; // 左シフト2bit、結果は20で、2進数表現は:00010100

  1. 右へシフトする演算子「>>」は、指定されたビット数を数値の2進数を右へシフトさせます。空いた左側のビットは、符号ビットで埋められます。右シフト演算子の構文は「a >> b」です。ここで「a」はシフト操作する数値、「b」は右へシフトするビット数です。

例えば、

a = 20; // 2進数表現:00010100

b = a >> 2; // 2ビット右シフト、結果は5、2進数表現:00000101

正の数の右シフト演算では開いたビットは 0 で埋められ、負の数では 1 で埋められます。これは Java が算術右シフトを使っているためです。論理右シフトが必要な場合は、開いたビットがすべて 0 で埋められる >>>(符号なし右シフト)演算子を使用します。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds