本节主题和内容是什么
主题:运算符
内容:
算数运算符
比较运算符
逻辑运算符
位运算符
位运算符
1.位运算符是什么
定义:位运算符是对整数的二进制表示的每一位进行逻辑运算的符号。
2.位运算符有哪些
3.位运算符的注意事项
位运算符中,只要有一个运算数是null,结果就是null。
4.BIN()函数
用途:返回参数n的二进制数。
语法
SELECT BIN(n);示例
SELECT BIN(5),BIN(7),BIN(5 & 7),BIN(5 | 7),BIN(5 ^ 7);示例
SELECT BIN(5),BIN(5 << 2),BIN(5 >> 2),10 & ~1;5.CONV()函数
用途:函数用于在不同进制之间转换数字。
语法
SELECT CONV(N,from_base,to_base)6.位运算
按位与
过程
第一步:对操作数进行二进制转换
第二步:对二进制每一位进行逻辑与比较,即:
只有同时为1时才是1,否则都是0
第三步:把操作的结果转换为十进制
SELECT 2 & 1;
2 => 10
1 => 01
00
SELECT 3 & 1;
3 => 11
3 => 01
01 => 1按位或
过程
第一步:对操作数进行二进制转换
第二步:对二进制每一位进行逻辑或比较,即:
只有同时为0才是0,否则都是1
第三步:把操作的结果转换为十进制
SELECT 3 | 1;
3 => 00000011
1 => 00000001
00000011 => 3按位异或
过程
第一步:对操作数进行二进制转换
第二步:对二进制每一位进行逻辑或比较,即:
相同的数异或得0,不同的数异或得1
第三步:把操作的结果转换为十进制
SELECT 2 ^ 1;
2 => 00000010
1 => 00000001
00000011 => 3按位取反
过程
第一步:对操作数进行二进制转换
第二步:对二进制每一位进行取反运算,即:
0取反为1,1取反位0
第三步:把操作的结果转换为十进制
SELECT ~1;
1 => 00000001
11111110 => 254
SELECT ~3;
3 => 00000011
11111100 => 252按位左移
语法
SELECT X << n;x: 表示操作数
n: 表示左移位数
过程
第一步:对操作数进行二进制转换
第二步:对二进制每一位向左移动n位,右侧补0
第三步:把操作的结果转换为十进制
SELECT 2 << 3;
2 => 00000010
00010000 => 16按位右移
语法
SELECT X >> n;x: 表示操作数
n: 表示右移位数
过程
第一步:对操作数X进行二进制转换
第二步:对二进制每一位向右移动n位,左侧补0
第三步:把操作的结果转换为十进制
SELECT 2 >> 3;
2 => 00000010
00000000 => 0十进制整数转二进制
口诀: 商除2取余倒序排
停止:一直用商除2,除到商位0停止