c++ - 按位或运算符

标签 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 | 412

10 是十进制文字。和 10 | 414

关于c++ - 按位或运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45456790/

相关文章:

c++ - 如何从函数传回一个值?

c++ - 元组中类型的编译时重新排列

c++ - QMap 是否产生内存泄漏?

c++ - 何时使用 fabsf 而不是 fabs

c++ - Qt "mousePressEvent"修改可点击区域

c++ - GCC 上虚拟继承行为的奇怪默认空构造函数

c++ - CPP 字符串构造函数查找并追加空字符

c++ - QT 4.8 中的几个监视器全屏应用程序

C++蜂鸣声不起作用

c++ - 如何使用 boost::hash 获取文件内容哈希?