私はこのコードスニペットに戸惑っています:
#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を期待していたのですが、代わりに取得しています。unsignedを使用しても効果がないようです。何が得られますか?
long max 9223372036854775807
2 * 1024 * 1024 * 1024 = -2147483648