我试图理解 |= 在 c++ 中,我有示例代码
int x = 0 ;
x |= 3;
std::cout<<x <<std::endl;
x |= 6;
std::cout<<x <<std::endl;
输出是:
3
7
这怎么可能,它与位加法有关吗?
这是一个按位或和赋值。它与 x = x | 相同。3.
在二进制位中或等效于“如果任一数字为 1,则结果中为 1”。所以 x |= 3 等于 3。那么 x 在二进制中是 11,而 6 在二进制中是 110,所以 11 | 101 = 111(二进制)= 7(十进制)。
x |= 3
方法
x = x |3
按位或运算。
它是按位或。
第一种情况:
0011(3 in decimal)
0000(0 in decimal)
因此,两者的 OR 为:
0011 OR 0000 = 0011
= 2^0 + 2^1
= 3
对于第二种情况,OR 的工作方式如下:
0011 (3 in decimal)
0110 (6 in decimal)
OR的输出是0111,十进制是:
0011 OR 0110 = 0111
= 2^0 + 2^1 + 2^2
= 1+2+4
= 7