看看下面的代码为什么不一样
unsigned int a=pow(2,32)-1;printf("%u\n",pow(2,32)-1);
printf("%u\n",a);
第一个输出4292870144
第二个输出4294967295 #include <stdio.h>
#include <math.h>
int main(void)
{
unsigned int a = pow(2 , 32) - 1 ;
printf("%u\n" , (unsigned int) (pow(2 , 32) - 1)) ;
printf("%u\n" , a) ;
}
编译运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
4294967295
4294967295
D:\\C>
页:
[1]