我想了解| =在C++中,我有示例代码在C++中意味着什么?
int x = 0 ;
x |= 3;
std::cout<<x <<std::endl;
x |= 6;
std::cout<<x <<std::endl;
输出为:
3
7
这怎么可能,这是否与位加法?
我想了解| =在C++中,我有示例代码在C++中意味着什么?
int x = 0 ;
x |= 3;
std::cout<<x <<std::endl;
x |= 6;
std::cout<<x <<std::endl;
输出为:
3
7
这怎么可能,这是否与位加法?
它是一个按位或。
首先情况:
0011(3 in decimal)
0000(0 in decimal)
因此,两者的OR是:
0011 OR 0000 = 0011
= 2^0 + 2^1
= 3
对于第二情况下,或工作原理如下:
0011 (3 in decimal)
0110 (6 in decimal)
OR的输出是0111,十进制是:
0011 OR 0110 = 0111
= 2^0 + 2^1 + 2^2
= 1+2+4
= 7
这是一个按位或分配。它与x = x |相同3.
二进制按位或等同于“如果它是任一数字中的1,它将在结果中为1”。所以x | = 3使得3。然后x在二进制中是11,而6是在二进制中110,所以11 | 101 = 111(二进制)= 7(十进制)。
x |= 3
装置
x = x |3
按位或运算。
您可以通过查看C++运算符列表,然后使用Google搜索名称来回答此问题。 – chris 2013-04-06 00:19:06
你所指的是一个按位或运算符。它比较所有的位,然后结果包含两个操作数的最高有效位(1,0)。例如: '1111000 | 0000111 = 1111111' **这不是一个加法**,尝试x = 72 | 184 ==> x = 248 – DOOM 2013-04-06 00:25:07