データをビット単位で、比較、操作する際に使うのがビット演算子です。
■論理積(and) &
各ビットを比べて、「両方とも1なら1、そうでなければ0」を返す演算
参考例
a = 170, b = 245
変数名 10進数 2進数 a 170 1 0 1 0 1 0 1 0 b 245 1 1 1 1 0 1 0 1 a&b 160 1 0 1 0 0 0 0 0
■論理和(or) |
「片方が1なら1、そうでなければ0」を返す演算(これはどちらも1の場合は1となる)
変数名 10進数 2進数 a 170 1 0 1 0 1 0 1 0 b 245 1 1 1 1 0 1 0 1 a|b 160 1 1 1 1 1 1 1 1
■排他的論理和(xor) ˆ
「片方が1で、もう片方が0なら1、そうでなければ0」を返す演算
変数名 10進数 2進数 a 170 1 0 1 0 1 0 1 0 b 245 1 1 1 1 0 1 0 1 aˆb 160 1 1 1 1 1 1 1 1
■1の補数表現(not) ~
「各ビットを反転させたもの」
変数名 10進数 2進数 a 170 1 0 1 0 1 0 1 0 a~ 160 0 1 0 1 0 1 0 1