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

标签 c++ bitwise-operators bitwise-and

我的问题很简单:如何在 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++ - 在 C++ 中对 int 使用按位与,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51629501/

相关文章:

c++ - 如何根据参数指定中断 vector ?

c++ - 复制构造函数、赋值运算符和析构函数代码重复

c# - 如何将日期和时间打包成 32 位?

c++ - 为什么这种计算整数体系结构符号的方法是特定的

java - 按位运算 Java AND 多个 boolean 值

c++ - 这 "if(k.c[3] & c)"部分代码在做什么?

vba - MS Access 中的按位运算

php - CryptoPP 与 PHP Base64 编码/解码

c++ - 为什么对高斯进行 FFT 时会出现负数?

java - 按位运算符简单地翻转整数中的所有位?