0x01:按位与(&)
作用:
1)清零。如果想让一个单元清零,即使其全部二进制位为0
2)取一个数中某些指定位。即将想要的那些位置1.
例:如有一个整数a(2个字节),想要其中的低字节,只需将a与(377,8进制 == 00000000 11111111)按位与即可。
3)要想将哪一位保留下来,就与一个数&运算,此数在该位取1.
0x02:按位或(|)
作用:
常用来对一个数据的某些位定值1,例:a(16位整数),a|0377,则低8位全置1,高8位保持原样
0x03:异或(^)
作用:
1)使特定位翻转
假设有01111010,想使其低4位翻转,即1变0,0变1,。可以将它与00001111进行^运算。
2)与0相^保留原值
3)交换两个值,不用临时变量
假设a=3,b=4
a=a^b;
b=b^a;
a=a^b;
0x03:取反(~)
作用:
若一个整数,若想使最低一位为0,可以用一致性较好的a=a&~1;(~运算符优先级比算术运算符,关系运算符,逻辑运算符和其他运算符都高)
0x03:左移(<<)
作用:
高位左移后溢出,舍弃.
一般用来取低位
0x04:右移(>>)
作用:
低位右移后被舍弃,对无符号数,高位补0
一般用来取低位
右移一位相当于除以2,右移n位相当于除以2的n次方
注意:在右移时,需要注意符号位的问题。对无符号数,右移时左边高位移入0,对于有符号数,如果原来符号位为0(该数为正),则左边也是移入0,如果符号位原来为1(即负数),则左边移入0还是1,取决于计算机系统。
时间: 2024-12-21 00:31:11