c++ - c 和 c++ 运算符帮助

标签 c++ c

有人可以向我解释为什么 b = 13 会出现以下结果吗?

int a, b, c;
a = 1|2|4;
b = 8;
c = 2;
b |= a;
b&= ~c;

最佳答案

它使用二进制机械手。 (假设int为1字节,使用Two的补码进行存储等)

a = 1|2|4 表示 a = 00000001 或 00000010 或 00000100,即 00000111,或 7。
b = 8 表示 b = 00001000
c = 2 表示 c = 00000010
b |= a 表示 b = b | a 表示 b = 00001000 or 00000111,即 00001111,即 15。
~c表示不是c,即11111101。
b &= ~c表示b = b & ~c,表示b = 00001111 and 11111101,即00001101,即13。

关于c++ - c 和 c++ 运算符帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187609/

相关文章:

c++ - 调用构造函数

c - Visual Studio 2010 C++ 意外的命令行参数

c++ - 聚合初始化,将成员指针设置为相同的结构成员

c++ - 是否有可能在 C++03 中实现类似 'override' 的功能

c++ - QPlainTextEdit 限制字符

c++ - STL vector 交换结构 (C++)

c - 如何在 visual studio 2010 中编译 C?

无法确定神秘段错误的原因

c - 定义数百个双常量的最节省内存的方法

c++ - 编译器在通用 lambda 上崩溃