Mysql ビット演算子で否定、他のまとめ

bit演算で「指定したビットを含まない」ってのを取得したい

作成日:2023-10-18, 更新日:2023-10-18

基本

▼bit演算で指定したbitを含む

(status & 〇〇〇) = 1

※「status & 〇〇〇」だけで問題無いんだけど否定のほうも考えると…意味が分からなくなったので…この記載

▼bit演算での否定

~(status & 〇〇〇) = 1

※「~(status & 〇〇〇)」で「(status & 〇〇〇)」の否定。

「status」が10進数で「4」のとき2進数だと「0100」

(status & 4) = 1
「status」=「10進数の4」が「真」 10進数で「status = 4」を取得したいとき
(status & 4) = 0
「status」=「10進数の4」が「偽」 10進数で「status != 4」を取得したいとき
~(status & 4) = 1
「status」=「2進数で左から3番目が1ではない」が「真」 「status」が「2進数で左から3番目が1ではない」ものを取得したい
※0001や1011など
~(status & 4) = 0
「status」=「2進数で左から3番目が1ではない」が「偽」 「status」が「2進数で左から3番目が1である」ものを取得したい
※0100や1100など

関連項目