【发布时间】:2022-12-01 10:23:13
【问题描述】:
例如,这里发生了什么
printf("%d\n", 100 | 200);
输出是:236
不幸的是我没有找到任何东西,分别我不知道技术术语
【问题讨论】:
-
按位运算符 OR 与逻辑运算符 OR 相对。 (x || y) -- 维基:en.wikipedia.org/wiki/Bitwise_operations_in_C
标签: c
例如,这里发生了什么
printf("%d\n", 100 | 200);
输出是:236
不幸的是我没有找到任何东西,分别我不知道技术术语
【问题讨论】:
标签: c
这是一个“按位或”运算。
为简单起见,如果语句是
a = 1 | 2;
那么答案将是 3,因为当您将 1 和 2 转换为二进制并进行 OR 运算时,您会得到 3 即(假设 8 位数字)
1 = 0000 0001
2 = 0000 0010
当您对以上两个进行按位或运算时,您会得到 0000 0011,即 3 相似地
100 = 0xC8 = 0110 0100
200 = 0x64 = 1100 1000
Answer is 1110 1100 = 0xEC = 236
【讨论】: