シフト演算子とビット単位の短縮代入

王林
リリース: 2024-08-17 18:48:32
オリジナル
283 人が閲覧しました

1.ビットシフト演算子

  • <<: 左にシフトします。
  • >>: 右にシフトします。
  • >>>: 符号なし右シフト (ゼロ埋め込みあり)。

2.シフト演算子の一般的な構文
値 << num-bits: 値を左にビットシフトします。
値>>; num-bits: 符号ビットを維持したまま、値のビットを右にシフトします。
値 >>> num-bits: 値を右にビットシフトし、左側にゼロを挿入します。

3.左にシフト

  • 左にシフトするたびに、値のすべてのビットが 1 つ左にシフトされます。
  • 右側にビット 0 が挿入されます。
  • 効果: 変位ごとに値を 2 で乗算します。

4.右にシフト

  • 右にシフトするたびに、すべてのビットが 1 つ右に移動します。
  • 符号ビットは保持されます。正の値の場合は 0、負の値の場合は 1 です。
  • 効果: シフトごとに値を 2 で割ります (切り捨て)。

5.右にシフト 信号なし (>>>)

  • 符号ビットの保存はありません。左側に 0 を挿入します。
  • 値が符号なしの数値として扱われるビット パターンで使用されます。

6.変位は回転ではありません

  • シフトアウトされたビットは失われます。
  • シフトでは、シフトアウトされたビットを回復できません。

例:
左右シフト
*シフトデモ *

バイト値と short 値をシフトするときの注意

  • Java は、式を評価するときに byte と short を int に自動的に昇格させます。

例:

  • 負のバイト値を右にシフト: int に昇格すると、上位ビットは 1 で埋められます。
  • ゼロ パディング (>>>) を使用して右にシフトすると、ゼロが表示され始める前に上位 24 ビットが 1 になるため、問題が発生する可能性があります。

ビット演算子による省略された代入

  • すべての 2 項ビット演算子には、代入とビット演算を組み合わせた短縮形式があります。


x = x ^ 127;
x ^= 127;

ログイン後にコピー

Os operadores de deslocamento e atribuições abreviadas bitwise

以上がシフト演算子とビット単位の短縮代入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!