功能:按位与运算

    返回类型: 和输入类型相同

    举例:

    1. mysql> select bitand(32767, 1); /* 0111111111111111 & 0000000000000001 */
    2. +------------------+
    3. | bitand(32767, 1) |
    4. +------------------+
    5. | 1 |
    6. +------------------+
    7. 1 row in set (0.01 sec)
    1. mysql> select bitand(32, 16); /* 00010000 & 00001000 */
    2. +----------------+
    3. | bitand(32, 16) |
    4. +----------------+
    5. | 0 |
    6. +----------------+
    7. 1 row in set (0.01 sec)
    1. mysql> select bitand(12,5); /* 00001100 & 00000101 */
    2. +---------------+
    3. | bitand(12, 5) |
    4. +---------------+
    5. | 4 |
    6. +---------------+
    7. 1 row in set (0.01 sec)
    1. mysql> select bitand(-1,15); /* 11111111 & 00001111 */
    2. +----------------+
    3. | bitand(-1, 15) |
    4. +----------------+
    5. | 15 |
    6. +----------------+

    bitnot(integer_type a)

    返回类型:和输入类型相同

    举例:

    1. mysql> select bitnot(16); /* 00010000 -> 11101111 */
    2. +------------+
    3. | bitnot(16) |
    4. +------------+
    5. | -17 |
    6. +------------+
    7. 1 row in set (0.01 sec)
    1. mysql> select bitnot(0); /* 00000000 -> 11111111 */
    2. +-----------+
    3. | bitnot(0) |
    4. +-----------+
    5. | -1 |
    6. +-----------+
    7. 1 row in set (0.01 sec)
    1. mysql> select bitnot(-128); /* 10000000 -> 01111111 */
    2. +--------------+
    3. | bitnot(-128) |
    4. +--------------+
    5. | 127 |
    6. +--------------+
    7. 1 row in set (0.01 sec)

    bitor(integer_type a, same_type b)

    功能:按位或运算

    举例:

    1. mysql> select bitor(1,4); /* 00000001 | 00000100 */
    2. +-------------+
    3. | bitor(1, 4) |
    4. +-------------+
    5. | 5 |
    6. +-------------+
    1. mysql> select bitor(0,7); /* 00000000 | 00000111 */
    2. +-------------+
    3. | bitor(0, 7) |
    4. +-------------+
    5. | 7 |
    6. +-------------+
    7. 1 row in set (0.01 sec)

    bitxor(integer_type a, same_type b)

    功能:按位异或运算

    返回类型:和输入类型相同

    1. mysql> select bitxor(0,15); /* 00000000 ^ 00001111 */
    2. +---------------+
    3. | bitxor(0, 15) |
    4. +---------------+
    5. | 15 |
    6. +---------------+
    7. 1 row in set (0.01 sec)
    1. mysql> select bitxor(7,7); /* 00000111 ^ 00000111 */
    2. +--------------+
    3. | bitxor(7, 7) |
    4. +--------------+
    5. | 0 |
    6. +--------------+
    7. 1 row in set (0.01 sec)
    1. mysql> select bitxor(8,4); /* 00001000 ^ 00000100 */
    2. +--------------+
    3. | bitxor(8, 4) |
    4. +--------------+
    5. | 12 |
    6. +--------------+