|
20鱼币
Type = sizeof(int);
i = Type * 8;
j = pow(2,32);
printf("%d\n",j);
//不知道为什么问题求助的代码块用不了,所以将就看一下吧
问题是这样的,pow(2,32)的值为2147483647,而pow(2,i)的值为-2147483648,调试过了,i 的值为32,int的字节为4位;
int 是有符号的
范围是从 -2^31 到2^31-1
因此要除以2
min_int = pow(2, sizeof(int) * 8) / 2 * (-1);
max_int = pow(2, sizeof(int) * 8) / 2 - 1;
如果你定义的的无符号整型 unsigned int
范围就从0到2^32-1
min_int =0;
max_int = pow(2, sizeof(int) * 8) - 1;
|
最佳答案
查看完整内容
int 是有符号的
范围是从 -2^31 到2^31-1
因此要除以2
min_int = pow(2, sizeof(int) * 8) / 2 * (-1);
max_int = pow(2, sizeof(int) * 8) / 2 - 1;
如果你定义的的无符号整型 unsigned int
范围就从0到2^32-1
min_int =0;
max_int = pow(2, sizeof(int) * 8) - 1;
|