C++中的“=”是什么意思? 我试图理解C++中的样本代码< /p> int x = 0 ; x |= 3; std::cout<<x <<std::endl; x |= 6; std::cout<<x <<std::endl;

C++中的“=”是什么意思? 我试图理解C++中的样本代码< /p> int x = 0 ; x |= 3; std::cout<<x <<std::endl; x |= 6; std::cout<<x <<std::endl;,c++,c,C++,C,这是怎么可能的,它与位加法有关吗?它是一种按位或和赋值。它与x=x | 3相同 在二进制位or中,如果它在任一数字中为1,则结果中为1。所以x |=3等于3。那么x在二进制中是11,6在二进制中是110,所以11 | 101=111二进制=7十进制。这是一个按位or和赋值。它与x=x | 3相同 x |= 3 在二进制位or中,如果它在任一数字中为1,则结果中为1。所以x |=3等于3。那么x在二进制中是11,6在二进制中是110,所以11 | 101=111二进制=7十进制 x |= 3

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

它是一种按位或和赋值。它与x=x | 3相同


在二进制位or中,如果它在任一数字中为1,则结果中为1。所以x |=3等于3。那么x在二进制中是11,6在二进制中是110,所以11 | 101=111二进制=7十进制。

这是一个按位or和赋值。它与x=x | 3相同

x |= 3 
在二进制位or中,如果它在任一数字中为1,则结果中为1。所以x |=3等于3。那么x在二进制中是11,6在二进制中是110,所以11 | 101=111二进制=7十进制

x |= 3 
意味着

x = x |3
按位或运算

意味着

x = x |3
按位或运算。

它是按位的

然后是作业。这意味着与x=x | 3相同。 它是按位的

然后是作业。这意味着与x=x | 3相同。 这是一个按位OR

第一种情况:

因此,两者的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
它是按位或

第一种情况:

因此,两者的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

你可以通过查看C++操作符列表然后再搜索这个名字来回答这个问题。你所指的是位运算或运算符。它比较所有位,然后结果包含两个操作数中最高有效位1,0。例如:1111000乘0000111=1111111,它不是一个加法,试试X=72=184==x= 248,你可以通过查看C++操作符列表然后再搜索这个名字来回答这个问题。它比较所有位,然后结果包含两个操作数中最高有效位1,0。例如:1111000 | 0000111=1111111这不是位加法,请尝试x=72 | 184==>x=248