名前 | 説明 |
---|---|
BIT_COUNT() |
設定されているビットの数を返します |
& |
ビット単位の論理積 |
~ |
ビットを反転します |
| |
ビット単位の論理和 |
^ |
ビット単位の排他的論理和 |
<< |
左シフト |
>> |
右シフト |
MySQL はビット演算に
BIGINT
(64
ビット) 演算を使用し、演算子が 64
ビットの最大範囲を持つようにします。
ビット単位の論理積 :
mysql> SELECT 29 | 15;
-> 31
結果は符合なしの 64 ビット整数です。
ビット単位の論理積 :
mysql> SELECT 29 & 15;
-> 13
結果は符合なしの 64 ビット整数です。
ビット単位の排他的論理和 :
mysql>SELECT 1 ^ 1;
-> 0 mysql>SELECT 1 ^ 0;
-> 1 mysql>SELECT 11 ^ 3;
-> 8
結果は符合なしの 64 ビット整数です。
longlong
(BIGINT
)
ナンバーを左にシフトします。
mysql> SELECT 1 << 2;
-> 4
結果は符合なしの 64 ビット整数です。値は 64 ビットに切り詰められます。特に、シフト数が符号なし 64 ビット数値の幅と等しいかそれより大きい場合、結果はゼロになります。
longlong
(BIGINT
)
ナンバーを右にシフトします。
mysql> SELECT 4 >> 2;
-> 1
結果は符合なしの 64 ビット整数です。値は 64 ビットに切り詰められます。特に、シフト数が符号なし 64 ビット数値の幅と等しいかそれより大きい場合、結果はゼロになります。
すべてのビットを反転します。
mysql> SELECT 5 & ~1;
-> 4
結果は符合なしの 64 ビット整数です。
引数 N
で設定されているビットの数を返します。
mysql> SELECT BIT_COUNT(29), BIT_COUNT(b'101010');
-> 4,
3