什么在c ++中是什么意思?

时间:2013-04-06 00:13:39

标签: c++ c

我试图理解| =在c ++中,我有示例代码

 int x = 0 ;

 x |= 3;
 std::cout<<x <<std::endl;

 x |= 6;
 std::cout<<x <<std::endl;

输出是:

3
7

这怎么可能,它与位加法有关吗?

4 个答案:

答案 0 :(得分:8)

这是一个按位或分配。它与x = x |相同3。

以二进制方式按位或相当于“如果它在任一数字中为1,则结果中将为1”。所以x | = 3使得3.然后x是二进制11,而6是二进制110,所以11 | 101 = 111(二进制)= 7(十进制)。

答案 1 :(得分:5)

x |= 3 

表示

x = x |3

按位或操作。

答案 2 :(得分:1)

按位

  

OR

然后分配。这意味着与x = x | 3相同。 about bitwise OR

答案 3 :(得分:1)

它是一个按位OR。

首先案例:

0011(3 in decimal)
0000(0 in decimal) 

因此,两者的OR是:

0011 OR 0000 = 0011

= 2^0 + 2^1 
= 3 

对于 second 情况,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