c语⾔变量在0和1反转,复习C语⾔位运算
0x01:按位与(&)
作⽤:
1)清零。如果想让⼀个单元清零,即使其全部⼆进制位为0 例:如有⼀个整数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:左移(<
作⽤:
⾼位左移后溢出,舍弃.
⼀般⽤来取低位
作⽤:灵山地震
⼀般⽤来取低位
右移⼀位相当于除以2,右移n位相当于除以2的n次⽅
注意:在右移时,需要注意符号位的问题。对⽆符号数,右移时左边⾼位移⼊0,对于有符号数,如果原来符号位为0(该数为正),则左边也是移⼊0,如果符号位原来为1(即负数),则左边移⼊0还是1,取决于计算机系统。
>唐山穆斯林