Чтобы узнать пределы целочисленных типов на вашей платформе, вы можете использовать numeric_limits
. Результаты не одинаковы на разных платформах. В вашем случае long
, вероятно, является 32-разрядным целым числом.
#include <limits>
#include <iostream>
int main()
{
std::cout << std::numeric_limits<int>::max() << '\t'
<< std::numeric_limits<long>::max() << '\t'
<< std::numeric_limits<long long>::max() << '\n';
}