Cのビット演算子

1はじめに

のバイナリビットとして(ビット単位OR)、^(ビット単位の排他的論理和)〜(ビット単位)、ビット演算対象| Cのビット単位の演算子は、&(ビット単位と)を、持っています操作完了位置、対応する結果で指定されたビット列情報、。

 

図2に示すように、ビット演算子

単項演算子の上記演算子、〜(ビット単位否定)において、他のものは、^、〜に続くビット演算子最高最低の優先順位にバイナリ演算子、です、& |。

(1)ビット単位のAND演算子(&)

ビット単位のAND演算子は、次の規則に従って計算されます。

0&0 = 0

0 1 0 =

1・0 = 0

1&1 = 1

つまり、結果が1であり、そうでなければ0、位置1と同じです。

ビット単位のAND 2つの典型的な使用法は、第1のビット列は、いくつかを取ることで、例えば、最下位8ビット×とら:X&0x00FFには、第二は、例えば予約いくつかの変数、休止位置0を作ることですX = X&は0xFF00:xが高い8を保持してみましょう。

(2)ビット単位のOR演算子(|)

ビット単位のOR演算子は、次の規則に従って計算されます。

0 | 0 = 0

0 | 1 = 1

1 | 0 = 1

1 | 1 = 1

つまり、余りが0である限り、演算結果のビットが1であるように、です。

0x03の| X = X:特定の位置のビット単位OR演算子一般的な使用は、1個の情報ビット列であり、例えば、2は1の最低位置をxは。

(3)ビット単位の排他的論理和演算子(^)

ビット単位の排他的論理和演算子は、次の規則に従って計算:

0 ^ 0 = 0

0 ^ 1 = 1

1 ^ 0 = 1

1 ^ 1 = 0

つまり、同じ値の対応するビットであり、結果は1と比較して、異なる値の対応するビットは0です。

(4)ビット演算子(〜)

ビット単位の単項演算は、演算の結果として、すなわち、0ビットどのの、情報ビットカウンタのビット列を検索するために使用され、1ビットであるが、結果は、例えば、0であり、X 0x07の値は、結果は〜X 0xf8です。

典型的なアプリケーションは、2最低をクリア、0に設定されているいくつかの、例えば、2×最小ビット操作をクリアし、xは0xf3であり、組み合わせ演算で使用するために、ビット単位の演算子を否定し、& 0、することができ、X = X&〜0x03のは、文を実行した後、xは0xF0がなります。

おすすめ

転載: www.cnblogs.com/Cqlismy/p/11773381.html