注意:
算数运算符,运算结果是数值类型
关系运算符,运算结果是
boolean
类型(其实就是
int
的
0-
假,非
0-
真)
逻辑运算符,运算结果是
boolean
类型(其实就是
int
的
0-
假,非
0-
真)
运算符
位运算符
说明:按位(
bit
) 来进行运算操作的运算符。
语法:
~ & | ^ << >>
~:按位取反
说明:单目运算符,数据的每一个
bit
位取反,也就是二进制数位上的
1
变
0,0
变
1
。
举例:
unsigned char ret = ~0x05;// 0000 0101 --> 1111 1010
printf("%d\n",~5); // -6
&:按位与
语法:
a & b
说明:首先将参与计算的操作数转换为二级制,然后按照每一位进行对齐,处理结果如下:
![](https://i-blog.csdnimg.cn/direct/73699fae40fd4a839382408e2d4204b3.png)
- 1&1:1
- 1&0:0
- 0&0:0
- 0&1:0
总结:如果我们前后两个操作数对齐位置上的二进制数字都是
1
,其结果是
1
,否则结果都是
0
|:按位或
语法:
a | b
说明:首先将参与计算的操作数转换为二级制,然后按照每一位进行对齐,处理结果如下:
![](https://i-blog.csdnimg.cn/direct/74051ecdab2c48128c20b79da6468627.png)
- 1|1:1
- 1|0:1
- 0|0:0
- 0|1:1
总结:如果我们前后两个操作数对齐位置上的二进制数字只要有
1
,其结果是
1
,否则结果都是
0
^:按位异或
语法:
a ^ b
说明:首先将参与计算的操作数转换为二级制,然后按照每一位进行对齐,处理结果如下:
![](https://i-blog.csdnimg.cn/direct/25ac2ebbf9f94e85bc5b0d479c2f2769.png)
- 1^1:0
- 1^0:1
- 0^0:0
- 0^1:1
总结:不同为1,相同为0
<<:左移,按bit位往左偏移
1.
无符号左移:
语法:
操作数
<<
移动位数(
bit
位)
unsigned int a = 3 << 3; // 快速计算:3 * 2^3
printf("%d\n",a); // 24
2.
有符号左移:
语法:
操作数
<<
移动位数(
bit
位)
int a = -3 << 3; // 快速计算:-3 * 2^3
printf("%d\n",a);// -24
>>:右移,按bit位往右偏移
1.
无符号右移:
语法:
操作数
>>
移动位数(
bit
位)
unsigned char a = 3 >> 3;
printf("%d\n",a); // 0
2.
有符号右移:
语法:
操作数
>>
移动位数(
bit
位)
int a = -3 >> 3;
printf("%d\n",a);// -1
案例:
![](https://i-blog.csdnimg.cn/direct/9ece7cba05c24b2490b34a35495a83f2.png)
![](https://i-blog.csdnimg.cn/direct/2d1d57a8c1fd4c069903e18517762826.png)
![](https://i-blog.csdnimg.cn/direct/ee971e2c2b494a3e9d458ace504c7762.png)
![](https://i-blog.csdnimg.cn/direct/f4acbb6fd0e34463a44a84dba7660bed.png)
![](https://i-blog.csdnimg.cn/direct/e0e5ccb681f4448fa90480b5e55a557e.png)
![](https://i-blog.csdnimg.cn/direct/328d2da0ef2347929ffd6fe61d171aef.png)
![](https://i-blog.csdnimg.cn/direct/840fe897167a43ff8e192d220616a805.png)
![](https://i-blog.csdnimg.cn/direct/86759bc250484c38b6c0bc59e8570a2b.png)
![](https://i-blog.csdnimg.cn/direct/4a0184b59aaf46dc82787d01d8d391cf.png)
![](https://i-blog.csdnimg.cn/direct/0e40ca66fb1b4ea39943d4c4dfaf6599.png)
![](https://i-blog.csdnimg.cn/direct/bcf967ee76d04e8fab1861fb8ac98533.png)
![](https://i-blog.csdnimg.cn/direct/f9bcbed93fac4bd694556d19d989a249.png)
![](https://i-blog.csdnimg.cn/direct/2622e99159164be2be68503554788e93.png)
![](https://i-blog.csdnimg.cn/direct/54f9ae7677574dde87b0edd81b49084f.png)
![](https://i-blog.csdnimg.cn/direct/e8de17c1c2574af88bd8cb0617bcf25f.png)