有人可以向我解释为什么 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/