在 C++ 中对 int 使用按位与

Use bitwise AND on an int in C++

我的问题很简单:如何在 C++ 中对 int 执行按位与运算?

#include <iostream>

int main() {
    unsigned int foo = 3;
    unsigned int bar = 6;
    std::cout << foo & bar;
    return 0;
}

它打印的不是 2,而是 3。

当我进行任何其他按位运算时,它也只打印第一个变量。

如何让它做手术?

您需要在 foo & bar 周围添加括号,因为 & 运算符的优先级低于移位 << 运算符。

std::cout << (foo & bar);

附带说明一下,令我惊讶的是代码编译时没有括号。奖励:cppreference

上运算符优先级规则的文档