第18回

ビットをいじる演算子

98/11/06 IE4.xに対応させた
98/04/29メールアドレス訂正

前回は、右シフト演算子>>と、左シフト演算子<<について学びました。これらの2つの演算子は、整数値をビット列として捉え、それを操作する為に用意されたビット演算子と呼ばれるものの一部です。C言語には、他にもまだまだたくさんのビット演算子が用意されています。

反転演算子~

ビット列の0を1に、1を0に反転させる時に使う演算子です。


AND演算子&

元となるビット列と、それと比較するビット列(マスクといいます)のビットが、両方とも1になっているところだけ1にする時に使う演算子です。例えば、

(2進数)1111000011110000 & (2進数)0011001100110011
の結果は、(2進数)0011000000110000となります。以下を参考にして下さい(の部分が、両方とも1になっているビットです)。
1111000011110000 元のビット列
0011001100110011 比較するビット列(マスク)
0011000000110000 結果

OR演算子|

元となるビット列と、マスクのビットのどちらかが1になっているところを1にする時に使う演算子です(両方1の場合も含みます)。例えば、

(2進数)1111000011110000 | (2進数)0011001100110011
の結果は、(2進数)1111001111110011となります。以下を参考にして下さい(の部分が、どちらかが1になっているビットです)。
1111000011110000 元のビット列
0011001100110011 比較するビット列(マスク)
1111001111110011 結果

XOR演算子^

元となるビット列と、マスクのビットが異なるところを1にする時に使う演算子です。例えば、

(2進数)1111000011110000 ^ (2進数)0011001100110011
の結果は、(2進数)1100001111000011となります。以下を参考にして下さい(の部分が、互いに異なっているビットです)。
1111000011110000 元のビット列
0011001100110011 比較するビット列(マスク)
1100001111000011 結果
つづく。

[メニュー][第17回][第19回]

いーざ
email:CQP00202@nifty.ne.jp