今日は Java の左シフトと右シフトを復習しました。これは負の数の例です:
Java では正の数と負の数は補数の形式で表されます
たとえば、-2 はコンピューターでは 11111111 11111111 11111111 と表されます。 11111110
1. 左シフト
-2
上記は補数コードで、最上位ビットは 1 で、これが負の数であることを示します。負の数の 2 の補数は、正の数の元のコードを取得することによって取得されます。「最上位ビットは 1、残りのビットは次のようになります。」を反転して、最後に 1 を加えます。」
反転すると、-2
2 という数値を表すことが分かります。 0 の場合は、0 を追加します
-2>>2: 11111111 11111111 11111111 11111111
10000000 00000000 00000000 00000001 (-1)
3. シフト演算子は「=」と組み合わせることができます。 "
a< <=2 を使用することは、a の後の値が 2 ビット左にシフトされてから a
4 に割り当てられることを意味します。追加するには、Java 仮想マシンはビッグエンディアンとリトルエンディアンをシールドします。 -エンディアンの問題、内部的にはすべてリトルエンディアンです。