输出是怎么来的
5
0
3^6=5的逻辑看不懂,其实应该是729吧?
这是代码
#include <stdio.h>
int main()
{
int a;
printf("%d\n",(3^6));
printf("%d",(a^a));
return 0;
}
最佳答案
^
运算符是按位异或。要理解为什么 3^6
是 5
,让我们看看这些值的二进制表示:
3 = 0011
6 = 0110
所以
3^6 = 0101 = 5
您没有初始化
a
,这意味着 a^a
是 undefined behaviour 。对于求幂,您需要使用
pow()
。关于无法理解这里的逻辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25057145/