MySQL 执行按位与、或、非

本文将介绍在 MySQL 中怎样实现按位与、或、非操作。

MySQL 中,对于 bit 运算使用 BIGINT(64 bit)算法,因此这些操作符的最大范围是 64 bit。下面将对各种位操作进行分别介绍:

|(按位或)

mysql> SELECT 29 | 15;
        -> 31

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

29 ==> 00011101
15 ==> 00001111 |
------------------------
       00011111 ==> 31

&(按位与)

mysql> SELECT 29 & 15;
        -> 13

注意:其结果为一个 64bit 无符号整数。

29 ==> 00011101
15 ==> 00001111 &
------------------------
       00001101 ==> 13

^(按位异或) 

mysql> SELECT 1 ^ 1;
        -> 0
mysql> SELECT 1 ^ 0;
        -> 1
mysql> SELECT 11 ^ 3;
        -> 8

注意:其结果为一个 64bit 无符号整数。

11 ==> 00001011
3  ==> 00000011 ^
------------------------
       00001000 ==> 8

<<(左移位)

下面把一个数左移两位,如下:

mysql> SELECT 1 << 2;
        -> 4

注意:其结果为一个 64bit 无符号整数。

1 ==> 00000001 << 2
------------------------
      00000100 ==> 4

>>(右移位)

下面把一个数右移两位,如下:

mysql> SELECT 4 >> 2;
        -> 1

注意:其结果为一个 64bit 无符号整数。

4 ==> 00000100 >> 2
------------------------
      00000001 ==> 1

~(取反) 

反转所有比特。如下:

mysql> SELECT 5 & ~1;
        -> 4

注意:其结果为一个 64bit 无符号整数。

5 ==> 0101

1 ==> 0001 取反后为 1110

0101
1110 &
------------------------
0100 ==> 4
一个不注意小事情的人,永远不会成功大事业。——戴尔·卡耐基
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号