如何 运行 在 C 中优先级较低的操作优先于优先级较高的操作
How to run operations with lower precedence in C before ones with higher precedence
#include <stdio.h>
int main()
{
short int a,b;
a=1;
b=1;
if ( (a | 65534)&1 == (b | 65534)&1 )
{
printf("The rightmost bit is the same");
}
else
{
printf("The rightmost bit is different");
}
return 0;
}
}
输出:
最右边位不同
预计:
最右边的位相同
这里的“==”在“&”之前运行,这是不可取的。我可以使用另一个变量来解决这个问题,但不使用另一个变量是这个任务的重点...
添加更多括号:
if ( ((a & 65534)&1) == ((b & 65534)&1) )
#include <stdio.h>
int main()
{
short int a,b;
a=1;
b=1;
if ( (a | 65534)&1 == (b | 65534)&1 )
{
printf("The rightmost bit is the same");
}
else
{
printf("The rightmost bit is different");
}
return 0;
}
}
输出: 最右边位不同
预计: 最右边的位相同
这里的“==”在“&”之前运行,这是不可取的。我可以使用另一个变量来解决这个问题,但不使用另一个变量是这个任务的重点...
添加更多括号:
if ( ((a & 65534)&1) == ((b & 65534)&1) )