Bit演算メモ
やり方を忘れがちなのでケースごとにメモっておく
Operator
Op | Operator | 例 |
---|---|---|
AND | & | x&y |
OR | | | x|y |
XOR | ^ | x^y |
NOT | ~ | ~x |
特定のビット(フラグ)のみを下げる方法
変数xのnビット目のみを下げる場合
// nビット目のみを立てた状態の逆でandをとる
x & (~(1<<n))
- (逆)変数xのnビット目のみを上げる方法
// nビット目を立てた状態てorをとる
x | (1<<n)
- nビット目が立っていたら下げる、下がっていたら上げる。
x ^ (1<<n)