有符号整型常量溢出
int 最大值:2147483647
long long int 最大值:9223372036854775807
long long int n = 2000 * 2000 * 2000 * 2000; //溢出 long long int n = 16000000000000; //正常顯示原因:
表達(dá)式1右邊計(jì)算的值為int,16000000000000 大于2147483647,所以溢出
所以想要正確的結(jié)果需要把計(jì)算值(而不是結(jié)果)轉(zhuǎn)為long long,比如
long long int n = (long long)2000 * 2000 * 2000 * 2000;long long int n = 2000LL * 2000 * 2000 * 2000;long long int n = static_cast<long long>(2000) * 2000 * 2000 * 2000;?
總結(jié)