C++ 2進数の使い方メモ
演算子
①シフト演算[<<](左シフト)
1<<0 //0001 または1
1<<1 //0010 または2
1<<2 //0100 または4
1<<3 //1000 または8
2進数の宣言は基本シフト演算でする。直感的にビット操作ができる。
2進数で右シフトの使い道はあるのか…?
②論理和[ | ]
0001 | 0010 //0011
0101 | 1010 //1111
0011 | 0110 //0111
互いのビットのどちらかが1ならば1を返す。
ビットを立てる時に使う。
変数に対して、代入演算子との併用が可能。
③論理積[&]
0001 & 0010 //0000
0011 & 0110 //0010
0101 & 0111 //0101
互いのビットがどちらも1ならば1を返す。
ビットを下ろすときに使う。
変数に対して、代入演算子との併用が可能。
④排他的論理和[^]
0001 ^ 0010 //0011
0011 ^ 0110 //0101
0101 ^ 0111 //0010
互いのビットが異なるなら1を返す。
一部ビットの反転処理に使う。
変数に対して、代入演算子との併用が可能。
⑤反転[~]
~0001 //1110
~0101 //1010
~0111 //1000
全ビットを反転させる。
ビットを下ろす時に使う。
良くある使い方
①フラグを立てる
fg |= bit
②フラグを下ろす
fg&=~bit
③フラグを反転させる
fg^=bit
※fgはint型変数
bitは2進数
この記事が気に入ったらサポートをしてみませんか?