我执行了以下代码片段(使用gcc编译)
#include <stdio.h>
void main()
{
double b = 5 % 3 & 4 + 5 * 6;
printf("%lf", b);
}
Run Code Online (Sandbox Code Playgroud)
输出是2.000000我没有得到它为什么这样的原因.
按位&具有较低的优先级比*,%,+.操作数将分组为
double b = (5 % 3) & (4 + 5 * 6);
Run Code Online (Sandbox Code Playgroud)
5%3= 2 = 0000 0000 0000 0000 0000 0000 0000 0010
34 =按0000 0000 0000 0000 0000 0000 0010 0010
位并行AND均为yield 0000 0000 0000 0000 0000 0000 0000 0010 = 2
| 归档时间: |
|
| 查看次数: |
314 次 |
| 最近记录: |