按位OR运算符

时间:2017-08-02 09:27:05

标签: c++

我有以下代码:

int ret() {
    int x = 010;
    int y = 4;
    int z = x | y;
    return z;
}

当x = 010时,此函数返回12.但是,在将x更改为10时,将返回14。为什么会这样?

1 个答案:

答案 0 :(得分:5)

OR运算符是一个红鲱鱼:问题出在其他地方。

由于领先010

0八进制字面值。在十进制中,这是8

因此x的值为8十进制。 8 | 412

10是十进制文字。 10 | 414