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;
版权声明:本文为zhao3132453原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。