Administrator
发布于 2025-11-14 / 4 阅读
0
0

MySQL项目3.1位运算符知识点汇总

本节主题和内容是什么

主题:运算符

内容:

  • 算数运算符

  • 比较运算符

  • 逻辑运算符

  • 位运算符

位运算符

1.位运算符是什么

定义:位运算符是对整数的二进制表示的每一位进行逻辑运算的符号。

2.位运算符有哪些

运算符

说明

示例

说明

&

按位与

x1 & x2

对位的每一位: 11得1,否则得0

按位或

x1 | x2

对位的每一位: 00得0,否则得1

按位取反

~x

1取反得0,0取反得1

^

按位异或

x1^x2

相同的数异或得0,不同的数异或得1

<<

按位左移

x<<n

将x的二进制数向左移n位,右边补n个0

>>

按位右移

x>>n

将x的二进制数向右移n位,左边补n个0

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停止


评论