c语言的复合赋值符。。。 <<= >>= &= ^= |= 分别有什么用啊??拜托了!! 谢谢~~

如题所述

在赋值符“=”之前加上其它二目运算符可构成复合赋值符。
如 :  +=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。
构成复合赋值表达式的一般形式为: 变量 双目运算符=表达式
它等效于 变量=变量 运算符 表达式
a<<=n(整数):将变量a的值的二进制形式先左移n位(等效于将a二进制值乘以2的n次方),再将所得的值赋给a;
a>>=n(整数):将变量a的值的二进制形式先右移n位(等效于将a二进制值除以2的n次方),再将所得的值赋给a;
a&=n :将a的二进制值与n的二进制值相与(a&&n),将所得赋值给a;
a^= n:将a的二进制值与n的二进制值相异或(a^n),将所得赋值给a;
a|= n:将a的二进制值与n的二进制值相或(a||n),将所得赋值给a;
希望对你有帮助,请采纳~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-01
a<<=1;//a左移1位赋值给a
a>>=1;// 右移
a&=1;//a与1按位相与后赋值给a
a^=1;// 异或
a|=1;// 或
第2个回答  2011-08-01
<<= 位运算左移
>>= 位运算右移
&= 位运算与
^= 位运算异或
|= 位运算或
相似回答