C语言中的|=和 &=是什么
1、C语言中的 >>= 意思为:右移后赋值
代码示例为:
x >>= 3;
右移后结果为:00000000 00000000 00000000 00000001
2、C语言中的 <<= 意思为:左移后赋值
代码示例为:
x = 8;
x <<= 3;
左移后赋值结果为:00000000 00000000 00000000 01000000
3、C语言中的 &= 意思为:按位与后赋值
代码示例为:
x = 0x02;
x &= 0x01;
按位与后的结果为:0x00
4、C语言中的 ^= 意思为:按位异或后赋值
代码示例为:
x = 0x02;
x ^= 0x01;
按位异或的结果为:0x03 等同于0011
5、C语言中的 |= 意思为:按位或后赋值
代码示例为:
x = 0x02;
x |= 0x01;
按位或的结果为:0x03 等同于0011
扩展资料:
1、C语言运算符的优先级顺序
运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。
2、比特右移运算符的位移
比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补 0)位移。例如,将 11100011 右移 3 比特,算术右移后成为 11111100,逻辑右移则为 00011100。因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。
参考资料来源:百度百科-C语言
| 按位或 ,|= 按位或等于
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。
按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。
main(){
int a=9,b=5,c;
c=a&b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
比如 a&=b;就是a跟b按位与后再把值赋给a
2. 按位或运算 按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
例如:9|5可写算式如下: 00001001|00000101
00001101 (十进制为13)可见9|5=13
main(){
int a=9,b=5,c;
c=a|b;
printf("a=%d\nb=%d\nc=%d\n",a,b,c);
}
同样: a|=b;就是a跟b按位或后再把值赋给a
&=表示并且等于
|=表示或者等于