灰豆儿 发表于 2017-6-26 22:12:49

S1E6最后一题舍罕王的问题求教

声明变量的时候一定要用unsigned long long么?此计算中不涉及到负数,直接用long long就不行,有点想不明白问题所在。请教一下各位,原因是什么呀?先多谢了~{:10_250:}

ba21 发表于 2017-6-26 23:36:03

他们的取值范围不一样;如果不在范围内就会溢出。
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
unsigned long long的最大值:18446744073709551615

shuofxz 发表于 2017-6-27 00:19:51

涉及到最大能表示的位数的问题
那int来举例,他的二进制表示为32位,有符号时第一位作为符号位,无符号时第一位作为数字位,这样的话无符号的int就要比有符号的int能表示的位数多
同理对于longlong也是这样,你所要表示的数应该是介于两个最大能表示的范围中间了,所以才会出现你所说的情况

灰豆儿 发表于 2017-6-27 14:57:14

谢谢两位,现在我明白了。{:5_108:}

ba21 发表于 2017-6-27 23:14:14

灰豆儿 发表于 2017-6-27 14:57
谢谢两位,现在我明白了。

明白也结个贴咯。
页: [1]
查看完整版本: S1E6最后一题舍罕王的问题求教