[讨论]大家看看下面的else if 语句,很简单,但是却有问题
当我输入0时它的判断只用了黑色部分,但是红色部分它直接跳过
函数的目的是:
如果x的二进制全是1或0或最后一个字节全是1或0,返回1,否则为0
dio.h>
int main()
{
int x;
printf("Input x:\n");
scanf("%X",&x);
if(~x==0)
{
printf("all 1\n");
return 1;
}
else
if(x&(~0)==0)
{
printf("all 0\n");
return 1;
}
else
if(x&255==255)
{
printf("endian 1\n");
return 1;
}
else
if(x&255==0)
{
printf("endian 0\n");
return 1;
}
else
return 0;
}
----------------解决方案--------------------------------------------------------
要注意 & 和 == 的优先级......
----------------解决方案--------------------------------------------------------
哦,看看
谢谢!
注意了,自己
----------------解决方案--------------------------------------------------------
遇到过类似问题,要特别注意逻辑运算的优先级!!
----------------解决方案--------------------------------------------------------