<分区>
我有以下代码:
int ret() {
int x = 010;
int y = 4;
int z = x | y;
return z;
}
当 x = 010 时,此函数返回 12。但是,将 x 更改为 10 时,返回 14。为什么会这样?
标签 c++
<分区>
我有以下代码:
int ret() {
int x = 010;
int y = 4;
int z = x | y;
return z;
}
当 x = 010 时,此函数返回 12。但是,将 x 更改为 10 时,返回 14。为什么会这样?
最佳答案
OR 运算符是一个转移注意力的问题:问题出在别处。
010
是一个八进制 字面量,因为前导 0
。在十进制中,这是 8
。
因此 x
的十进制值为 8
。和 8 | 4
是 12
。
10
是十进制文字。和 10 | 4
是 14
。
关于c++ - 按位或运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456790/