まず第一に、3種類のシフト演算子があり、その操作タイプは、BYTE/SHORT/CHAR/INTとLONGの5つのタイプのみをサポートしています。
<<左シフト演算子。これは、左のオペランドのバイナリデータを左 *ビットに移動することを意味します。シフト後、空のビットは0で満たされ、余分なビットが破棄されます。 (乗算のn力に相当2)
>>右シフト演算子、バイナリデータは右にビットを移動し、バイナリデータの後に何ビットを消去しますか? (ここに設定するのはかなり良いことですが、私はそれをこのように理解しています)(2のNパワーに相当)
>>>シフトの前の最高ビットが0または1であるかどうかにかかわらず、右シフトの後に生成される空のビットは0で満たされているかどうかにかかわらず、署名されていない右シフト演算子。
デモを使用して理解するのに役立ちましょう。
public static void main(string [] args){int a = 16; int b = a << 2; //左に2を転送し、16 * 2の2の電力に相当します。つまり、16 * 4 int c = a >> 2; //右に2、つまり16/4 system.out.println( "aのバイナリデータは次のとおりです。 system.out.println( "aのバイナリデータは次のとおりです。" + integer.tobinarystring(b)); system.out.println( "aのバイナリデータは次のとおりです。" + integer.tobinarystring(b)); system.out.println( "aのバイナリデータは次のとおりです。" + integer.tobinarystring(c)); System.out.println( "左シフト後のaの値は次のとおりです。" + b); System.out.println( "rightをシフトした後のaの値は:" + c); }}図に示すように、実行中の結果を確認してください。
まず、16のバイナリデータは次のとおりです。
残り2ビットを移動し、10000は1000000になります。
2桁を右に移動すると、10000が100になります。
取得したバイナリデータを通常のデータに変換した後、
左シフト後の値は64で、これは2(16 * 4)の電力に対する16 * 2です。
適切なシフトの後の値は4で、これは2(16/4)の電力から16/2です。
このデモを読んだ後、シフトオペレーターを理解する方がはるかに簡単ですか?
Javaの上記のデモとShiftオペレーターの要約(推奨)は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。