ビット演算子 AND OR XOR

Bnjour

C言語でも組み込み系に欠かせないのがこのビット演算子です。

一通り勉強はしたんですが、こないだの勉強会でやはりあまり覚えてなかったので備忘録です。

 

●AND

両方のビットが『1』のときだけ『1』にします。

1 1 → 1

1 0 → 0

0 1 → 0

0 0 → 0

 

a = 0011;

a &=0101;

この場合aには「0001」が代入されることになります。

 

 

●OR

片方のビットのどちらかが「1」のとき「1」にします。

1 1 → 1

1 0 → 1

0 1 → 1

0 0 → 0

 

a = 0011;

a |= 0101;

この場合aには「0111」が代入されます。

 

 

●XOR

ビットの値が異なる場合だけ「1」にします。

1 1 → 0

1 0 → 1

0 1 → 1

0 0 → 0

 

a = 0011 ;

a ^= 0101;

この場合aには「0110」が代入されます。

 

XORがいまいちややこしい。。。

まぁ慣れですかね?

 

少しずつ一歩一歩