对于比特运算,MySQL 使用 BIGINT (64比特) 算法,因此这些操作符的最大范围是 64 比特。

  • |

Bitwise OR:

mysql> SELECT 29 | 15;

        -> 31

其结果为一个64比特无符号整数。

  • &

Bitwise AND:

mysql> SELECT 29 & 15;

        -> 13

其结果为一个64比特无符号整数。

  • ^

Bitwise 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比特无符号整数。

  • >>

把一个longlong (BIGINT)数右移两位

mysql> SELECT 4 >> 2;

        -> 1

其结果为一个64比特无符号整数。

  • ~

反转所有比特。

mysql> SELECT 5 & ~1;

        -> 4

其结果为一个64比特无符号整数。

  • BIT_COUNT(N)

返回参数N 中所设置的比特数

mysql> SELECT BIT_COUNT(29);

        -> 4