小白求解课后题目
unsigned long long sum = 0;unsigned long long temp;
unsigned long long weight;
int i;
for (i=0; i < 64; i++)
{
temp = pow(2, i);
sum = sum + temp;
}
weight = sum / 25000;
请问为什么要用unsigned,默认signed情况下计算sum可以实现但是weight计算出来是0,必须要用unsigned限定sum temp和weight才可以得出结果,但是本身计算的数字不存在负数呀,所以搞不太明白 unsigned long long类型只有正数,范围比有符号的大一倍。这样才能容纳下该结果。
若用默认的signed,会溢出导致数据错误。 sunrise085 发表于 2020-3-15 16:53
unsigned long long类型只有正数,范围比有符号的大一倍。这样才能容纳下该结果。
若用默认的signed,会溢 ...
感谢,学习了
页:
[1]