int main()
{
float a = 2; int b = 32;
int x = pow(a, b)-1;
printf("%d",x );//2^32-1=4294967295
return 0;
}
的运行结果是:-2147483648
oh my god!
本文探讨了一段C语言代码中使用pow函数计算2的32次方减1时出现的意外结果-2147483648。通过对代码的分析,解释了为何预期结果4294967295并未出现的原因。
int main()
{
float a = 2; int b = 32;
int x = pow(a, b)-1;
printf("%d",x );//2^32-1=4294967295
return 0;
}
的运行结果是:-2147483648
oh my god!
7160
5097