【发布时间】:2013-03-16 22:43:48
【问题描述】:
我对这段代码sn-p感到困惑:
#include <climits>
#include <iostream>
int main(void) {
using namespace std;
cout << "long max " << LONG_MAX << endl;
long x = 2 * 1024 * 1024 * 1024;
cout << "2 * 1024 * 1024 * 1024 = " << x << endl;
return 0;
}
我原以为应该是 2147483648,但我得到了。使用无符号似乎没有帮助。什么给了?
long max 9223372036854775807
2 * 1024 * 1024 * 1024 = -2147483648
【问题讨论】:
-
如果你输入
1024,它已经有一个数据类型,在这种语言中是整数。这就是为什么如果你想要长数据类型,你需要指定1024L。
标签: c++