在 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
上运算符优先级规则的文档
我的问题很简单:如何在 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
上运算符优先级规则的文档