MySQL中的运算符有一类比较特殊,那就是位运算符。
它是一种专门为二进制数字提供的运算符。
这里我就分享下6类位运算符的知识点。
工具/原料
MySQL 5.7
win10电脑
操作方法
1、位运算符定义及类型
位运算符用来对二进制字节中的位进行位移或者处理,MySQL中提供的位运算符有按位或(|)、按位与(&)、按位异或(^)、按位左移(<<)、按位右移(>>)、按位取反(~)等运算符。
22、数据准备
我们准备几个十进制数字,并列出其对应的二进制数。
见图
33、按位或|
1)规则进行按位或的计算,对应的二进制位有一个或两个为1,运算结果为1,否则为0;
2)案例3|8的结果是1011,转化为十进制就是11。
同理4|7得到0111,再与1010进行按位或得到1111,即为十进制数字15。
44、按位与&
1)规则进行按位与的计算,对应的二进制位有两个为1,运算结果为1,否则为0。
2)案例所以我们可以自己得出结果3&8 = 0,4&7&10 = 0。
55、按位异或^
1)规则进行按位异或的计算,对应的二进制位不相同时,运算结果为1,否则为0。
2)案例所以我们可以自己得出结果3^8 = 11,4^7^10 = 9。
66、按位左移<<
1)规则进行按位左移的功能是让指定二进制的所有位都左移指定的位数。
并且在左移指定位数后,左边高位的数值被移出丢弃,右边地位空出的位置则用0补齐。
2)案例8<<2就是二进制数1000向左移动2位得到100000,即为十进制数32;10<<3就是二进制数1010向左移动3位得到1010000,即为十进制数80。
77、按位右移>>
1)规则进行按位右移与按位左移逻辑一致,只是移动的方向变成了右边,即丢地右边的位数。
2)案例8>>2变成了10,即为十进制数2;10>>3变成了1,即为十进制数1。
88、按位取反~
1)规则按位取反是针对一个十进制数对应的二进制位上的数字都进行取反操作,即0变成1,1变成0,之后再转化为十进制得到结果。
2)案例~8得到的是18446744073709551607;3&~8则是18446744073709551607转化为二进制后与0011进行按位与计算,结果为3。

总结
1、位运算符是针对二进制字节的操作;2、位运算符有六种类型;3、学习位运算符之前,必须要掌握十进制与二进制之间的互相转换;4、针对两个操作数的有按位或、按位与、按位异或;5、针对一个操作数的有按位左移、按位右移、按位取反。








