关于变量对常数1按位求与的疑问#include\x05int main(){\x05 printf("%d\n",2 & 1 == 0);\x05 return 0;}为什么程序运行结果是0?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/25 04:55:22

关于变量对常数1按位求与的疑问#include\x05int main(){\x05 printf("%d\n",2 & 1 == 0);\x05 return 0;}为什么程序运行结果是0?
关于变量对常数1按位求与的疑问
#include\x05
int main()
{
\x05 printf("%d\n",2 & 1 == 0);
\x05 return 0;
}
为什么程序运行结果是0?

关于变量对常数1按位求与的疑问#include\x05int main(){\x05 printf("%d\n",2 & 1 == 0);\x05 return 0;}为什么程序运行结果是0?
楼上的弄错了哟,2&1确实等于0
十进制2的二进制10
十进制1的二进制01
求与结果就是0
至于为什么这个程序里结果是0,那是因为狡猾的运算顺序问题
换成(2&1)==0,那结果就是1
就是说,其实是先算了1==0相当于2&(1==0),所以结果是0