【笔记】C语言的按位运算符

前言

C语言的按位运算符

按位取反运算

  • 所有位取反
1
2
3
1001 1001
---------
0110 0110
1
num = ~num;

左移运算符

  • 左移1位,最低位补0
1
2
3
1001 1001
---------
0011 0010
1
num << 1;

右移运算符

  • 右移1位,最高位补0
1
2
3
1001 1001
---------
0100 1100
1
num >> 1;

按位与运算

  • 有0则0,全1为1
1
2
3
4
1001 1001
1010 1010
---------
1000 1000
1
num = num & 0b10101010;

按位或运算

  • 有1则1,全0则0
1
2
3
4
1001 1001
1010 1010
---------
1011 1011
1
num = num & 0b10101010;

按位异或运算

  • 不同为1,相同为0
1
2
3
4
1001 1001
1010 1010
---------
0011 0011
1
num = num ^ 0b10101010;

按位同或运算

  • 相同为1,不同为0
1
2
3
4
1001 1001
1010 1010
---------
1100 1100

完成