关于C双类型的行为

use*_*264 1 c

我执行了以下代码片段(使用gcc编译)

#include <stdio.h>
void main()
{
    double b = 5 % 3 & 4 + 5 * 6;
    printf("%lf", b);
}
Run Code Online (Sandbox Code Playgroud)

输出是2.000000我没有得到它为什么这样的原因.

hac*_*cks 6

按位&具有较低的优先级*,%,+.操作数将分组为

 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

  • 有人也对我进行了贬低.我没有对你投降,但我认为你付出了太多的努力,有时可能会引起反应.在得到同样的反应后,我更愿意给出现在的要求. (2认同)