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

sol*_*lti 1 c c++

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

 int x = 0 ;

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

 x |= 6;
 std::cout<<x <<std::endl;
Run Code Online (Sandbox Code Playgroud)

输出是:

3
7
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*ams 8

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

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