输出是怎么来的
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^65,让我们看看这些值的二进制表示:

3 = 0011
6 = 0110

所以
3^6 = 0101 = 5

您没有初始化 a ,这意味着 a^aundefined behaviour

对于求幂,您需要使用 pow()

关于无法理解这里的逻辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25057145/

10-12 20:49