1. ホーム
  2. language-agnostic

[解決済み】ビット演算子の実際の使用例【クローズド

2022-04-05 16:25:51

質問

以下のビット演算子の実際の使用例を教えてください。

  • AND
  • XOR
  • NOT
  • OR
  • 左・右シフト

解決方法は?

  • ビットフィールド(フラグ)

    これは、いくつかのプロパティで定義される状態を表現する最も効率的な方法です。 ACLが良い例です。例えば、4つの個別の権限(読み取り、書き込み、実行、ポリシー変更)がある場合、4つを無駄にするよりも1バイトに格納する方が良いでしょう。 これらは、多くの言語で列挙型にマッピングすることができ、利便性を高めています。

  • ポート/ソケットを使った通信

    チェックサム、パリティ、ストップビット、フロー制御アルゴリズムなどが常に含まれ、これらは通常、数値ではなく個々のバイトの論理値に依存しています。

  • 圧縮、暗号化

    いずれもビット単位のアルゴリズムに大きく依存しています。 を見てください。 デフレート この例では、すべてがバイトではなくビットで表現されています。

  • 有限状態マシン

    ここでは、主にハードウェアに組み込まれたものについて述べますが、ソフトウェアにも含まれることがあります。 これらは組合せ論的な性質があり、文字通り論理ゲートの束にコンパイルされるため、次のように表現されなければなりません。 AND , OR , NOT など。

  • グラフィック これらの演算子がグラフィックス・プログラミングで使われるすべての領域を紹介するには、ここでは十分なスペースがありません。 XOR (または ^ は特に興味深いもので、同じ入力を2回目に適用すると、1回目の入力が取り消されるからです。 古いGUIでは、選択ハイライトや他のオーバーレイのために、コストのかかる再描画の必要性をなくすために、この機能を利用していました。 遅いグラフィックスプロトコル(リモートデスクトップなど)では、今でも有用です。

これらは、私が最初に思いついたいくつかの例に過ぎず、すべてを網羅したものではありません。