1

私は彼らが何をするかを知っています.

4

3 に答える 3

4

データのチャンクの個々のビット (byte や int など) を操作する必要がある場合。これは、たとえば、以下を扱うアルゴリズムで頻繁に発生します。

  • 暗号化
  • 圧縮
  • オーディオ/ビデオ処理
  • ネットワーキング (プロトコル)
  • 持続性 (ファイル形式)
于 2010-12-26T21:25:59.753 に答える
2

以前、ビットマスクに使用しました。「はい」または「いいえ」の値を持つことができるアイテムのリストを持つアイテムがあるとします(たとえば、車のオプション)。各オプションを数値の2進数に割り当てることにより、すべてのオプションに値を与える1つの整数列を割り当てることができます。

Example: 5 = 101 in binary
that would mean:
option 1 - yes
option 2 - no
option 3 - yes

これについてクエリを実行する場合は、ビット単位の&または|を使用します。正しい項目を選択するための演算子。

これはそれをより詳細に説明する良い記事です。

于 2010-12-26T21:29:22.617 に答える
1

1つの例は、(A)RGBカラーが32ビット整数として格納されていて、個々のカラーコンポーネントを抽出する場合です。

red = (rgb >> 16) & 0x000000ff;
green = (rgb >> 8) & 0x000000ff;
blue = rgb & 0x000000ff;

もちろん、高レベルのプログラマーとして、あなたは通常、自分でビットをいじるよりも、ライブラリ関数を使用してこれを行うことを好むでしょう。ただし、ライブラリはビット演算を使用して実装される場合があります。

于 2010-12-26T21:29:49.927 に答える