-
位运算
- 基础:位运算的所有过程均为二进制数参与。
-
十进制转换为二进制的方法:
用 2 整除十进制数,得到商和余数;
再用 2 整除商,得到新的商和余数;
重复第一步和第二部,直到商为零; - 从后往前,每步得到的数为二进制数的高位到低位。
如
21/2=10余1
10/2=5余0
5/2=2余1
2/2=1余0
1/2=0余1
所以 21转换为二进制数为10101. - 位运算符有6种:&,|,^,>>,<<,~
- 一.&(按位与)
此运算符的意思为:将比较的两数每位以此进行比较,如果对应的二进制位数均为1则结果为1,否则,结果为0
如 十进制数 6和9
6的二进制数为:00000101
9的二进制数为:00001001
00000101&00001001
result:00000001 - 二.|(按位或)
此运算符的意思为:将比较的两数每位以此进行比较,只要对应的二进制位中有 1,结果位为 1,否则为0
如 十进制数 6和9
6的二进制数为:00000101
9的二进制数为:00001001
00000101|00001001
result:00001101 - 三.~(取反运算符)
此运算符的意思为:将数字对应二进制各位上对应的数:1变为0,0变为1
如 十进制数 6
6的二进制数为:00000101
~6为11111010 - 四.<<(左移运算符)
此运算符的意思为:将数字所对应的二进制数进行左移
如 十进制数 6
6的二进制数为:00000101
左移四位得(6<<4):01010000(高位舍弃,低位补0) - 五.>>(右移运算符)
此运算符的意思为:将数字所对应的二进制数进行右移
如 十进制数 6
6的二进制数为00000101
右移四位得(6>>4):00000000(低位舍弃,高位补0) - 六.^(按位异或)
此运算符的意思为:两数二进制数对应位数上的数不同则为1,否则为0
6的二进制数为:00000101
9的二进制数为:00001001
00000101^00001001
result:00001100
位运算总结 C语言
最新推荐文章于 2023-05-21 01:45:26 发布