加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

关于MySQL位异或运算符

发布时间:2021-06-04 02:54:25 所属栏目:MySql教程 来源:互联网
导读:省略号部分都是 0,101 前面总共有 61 个 0。 注意:为了方便大家阅读,本节在介绍正数的补码时,省略了前面的 0。 MySQL 支持 6 种位运算符,如下表所示。 MySQL 中的位运算符运算符说明使用形式举例 | 位或 a | b 5 | 8 位与 a b 5 8 ^ 位异或 a ^ b 5 ^
省略号部分都是 0,101 前面总共有 61 个 0。

注意:为了方便大家阅读,本节在介绍正数的补码时,省略了前面的 0。
 
MySQL 支持 6 种位运算符,如下表所示。
MySQL 中的位运算符 运算符 说明 使用形式 举例
|   位或   a | b   5 | 8  
&   位与   a & b   5 & 8  
^   位异或   a ^ b   5 ^ 8  
~   位取反   ~a   ~5  
<<    位左移   a << b   5 << 2,表示整数 5 按位左移 2 位  
>>    位右移   a >> b   5 >> 2,表示整数 5 按位右移 2 位  

位运算中的&、|、~和逻辑运算中的&&、||、!非常相似。 位或运算符 | 参与|运算的两个二进制位有一个为 1 时,结果就为 1,两个都为 0 时结果才为 0。例如1|1结果为 1,0|0结果为0,1|0结果为1,这和逻辑运算中的||非常类似。
例 1 使用位或运算符进行正数运算,SQL 语句如下:
mysql> SELECT 10|15,9|4|2; +-------+-------+ | 10|15 | 9|4|2 | +-------+-------+ | 15 | 15 | +-------+-------+ 1 row in set (0.00 sec) 10 的补码为 1010,15 的补码为 1111,按位或运算之后,结果为 1111,即整数 15;9 的补码为 1001,4 的补码为 0100,2 的补码为 0010,按位或运算之后,结果为 111,即整数 15。
例 2  使用位或运算符进行负数运算,SQL 语句如下:
mysql> SELECT -7|-1; +----------------------+ | -7|-1 | +----------------------+ | 18446744073709551615 | +----------------------+ 1 row in set (0.00 sec) -7 的补码为 60 个‘1’加 1001,-1 的补码为 64 个‘1’,按位或运算之后,结果为 64 个‘1’,即整数 18446744073709551615。
 
可以发现,任何数和 -1 进行位或运算时,最终结果都是 -1 的十进制数。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读