1.什么是位运算符?
- 位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。 C语言供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的 char,short,int与long类型。
2.位运算符与
- & 按位与
- 只有对应的两个二进位均为1时,结果位才为1,否则为0
- 口诀: 同1为1(很有用的)
9&5 = 1
1001
&0101
------
0001
- 规律
- 应用场景
- 判断奇偶: 将变量a与1做位与运算,若结果是1,则 a是奇数;若结果是0,则 a是偶数
- 任何数和1进行&操作,得到这个数的最低位
3.位运算符或
- | 按位或
- 只要对应的二个二进位有一个为1时,结果位就为1,否则为0
9|5 = 13
1001
|0101
------
1101
4.位运算符异或
- ^ 按位异或
- 当对应的二进位相异(不相同)时,结果为1,否则为0
9^5 = 12
1001
^0101
------
1100
- 规律
- 相同整数相的结果是0。比如55=0
- 任何数^0都等于这个数
5.位运算符取反
~9 =-10
9的原码:0000 0000 0000 0000 0000 1001
反码:1111 1111 1111 1111 1111 0110
知道补码求原码:也是符号位不变,其他各位取反+1
1111 1111 1111 1111 1111 0110
取反
1000 0000 0000 0000 0000 1001
+1
1000 0000 0000 0000 0000 1010 // -10