Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 20.9Mb
PDF (A4) - 21.0Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


12.12 ビット関数

表 12.16 ビット単位の関数

名前 説明
BIT_COUNT() 設定されているビット数を返します
& ビット単位の AND
~ ビットを反転します
| ビット単位の OR
^ ビット単位の XOR
<< 左シフト
>> 右シフト

MySQL では、演算子の最大範囲が 64 ビットになるように、ビット演算に BIGINT (64 ビット) 算術が使用されます。

  • |

    ビット単位の OR:

    mysql> SELECT 29 | 15;
            -> 31

    結果は符合なしの 64 ビット整数です。

  • &

    ビット単位の AND:

    mysql> SELECT 29 & 15;
            -> 13

    結果は符合なしの 64 ビット整数です。

  • ^

    ビット単位の XOR:

    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 ビット整数です。

  • BIT_COUNT(N)

    引数 N で設定されているビットの数を返します。

    mysql> SELECT BIT_COUNT(29), BIT_COUNT(b'101010');
            -> 4, 3