在C++中对int使用逐位AND

Use bitwise AND on an int in C++

本文关键字:AND C++ 中对 int      更新时间:2023-10-16

我的问题很简单:如何在C++中对int执行逐位AND?

#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 上操作员优先级规则的文档