关于变量对常数1按位求与的疑问#include\x05int main(){\x05 printf("%d\n",2 & 1 == 0);\x05 return 0;}为什么程序运行结果是0?
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/25 18:41:01
![关于变量对常数1按位求与的疑问#include\x05int main(){\x05 printf(](/uploads/image/z/6603720-24-0.jpg?t=%E5%85%B3%E4%BA%8E%E5%8F%98%E9%87%8F%E5%AF%B9%E5%B8%B8%E6%95%B01%E6%8C%89%E4%BD%8D%E6%B1%82%E4%B8%8E%E7%9A%84%E7%96%91%E9%97%AE%23include%5Cx05int+main%28%29%7B%5Cx05+printf%28%22%25d%5Cn%22%2C2+%26+1+%3D%3D+0%29%3B%5Cx05+return+0%3B%7D%E4%B8%BA%E4%BB%80%E4%B9%88%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E7%BB%93%E6%9E%9C%E6%98%AF0%3F)
关于变量对常数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