C++中的复合运算符|=和&=

在C#中我们经常见到的复合运算符是+=和-=, 比如

a+= b;  等价于 a = a + b;

a-=b; 等价于a = a - b;

C++中,除了这两个外,还有类似的复合运算符 |= 和 &=

首先要明白 | 和 & 是二进制运算符,分别为二进制 按位或 , 按位与

|  =>  按位或  运算符 , 二进制运算符,在同一位上数字相同时为0, 数字不同时结果为1

& => 按位与 运算符,  二进制运算符,当且仅当运算数都为1时,结果为1, 其他都为0  =>  1 & 1 == 1,  1 & 0 == 0,  0 & 1 = =0, 0 & 0 = =0

所以 

a |= b  等价于  a = a | b  =>  对a 和 b 进行按位 或 运算, 结果赋给a

a &= b 等价于 a = a & b => 对a 和 b进行按位 与 运算,结果赋给a

比如 a = 2, b = 3, 那么 a|= b的值是什么?

a  = 2  =>  对应二进制值为 0000010

b = 3  =>  对应二进制值为 0000011

那么 a|= b  等价于 a = a | b, 也就是 

0000010

|

0000011

=

00000001

也就是说运算结果是  a = 1 (1的二进制值为 00000001)

 

posted on   新西兰程序员  阅读(829)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示