C++中的“=”是什么意思? 我试图理解C++中的样本代码< /p> int x = 0 ; x |= 3; std::cout<<x <<std::endl; x |= 6; std::cout<<x <<std::endl;
这是怎么可能的,它与位加法有关吗?它是一种按位或和赋值。它与x=x | 3相同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
在二进制位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