输出结果如何 五 0 我无法理解3 ^ 6 = 5的逻辑,实际上它应该是729对吗? 这是代码
#include <stdio.h>
int main()
{
int a;
printf("%d\n",(3^6));
printf("%d",(a^a));
return 0;
}
答案 0 :(得分:7)
^
运算符是按位xor。要了解3^6
为5
的原因,请查看这些值的二进制表示:
3 = 0011
6 = 0110
等等
3^6 = 0101 = 5
您没有初始化a
,这意味着a^a
是undefined behaviour。
对于取幂,您需要使用pow()
。
答案 1 :(得分:4)
C中的^
运算符不是指数:它是按位xor 。
00000011 (3)
xor
00000110 (6)
=
00000101 (5)
将pow()
用于指数。
你没有初始化a
,所以要小心。
答案 2 :(得分:1)
C中的运算符^
不是幂 - C没有内置运算符,只有pow
函数:
double x = pow(3,5);
运算符^
是按位异或。
答案 3 :(得分:0)
^
是用于XORing的运算符。包括#include<math.h>
头文件和use pow(3,6)
来评估权力,你会得到729