有符号整型常量溢出
int 最大值:2147483647
long long int 最大值:9223372036854775807
long long int n = 2000 * 2000 * 2000 * 2000; //溢出 long long int n = 16000000000000; //正常顯示原因:
表達式1右邊計算的值為int,16000000000000 大于2147483647,所以溢出
所以想要正確的結果需要把計算值(而不是結果)轉為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;?
總結