Может ли кто-нибудь помочь мне понять, почему я вижу разные результаты для одного и того же входа? вывод "n" равен 2147483647, что неверно. Почему?
-------- вывод ----------
FF
FF
FF
FF
FFFFFF
16777215
16777215
--------- код ---------------------------------------------------------------------
string s="FF FF FF FF";
std::stringstream ss(s);
std::istream_iterator<std::string> begin(ss);
std::istream_iterator<std::string> end;
std::vector<std::string> vstrings(begin, end);
std::copy(vstrings.begin(), vstrings.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
printf("\n");
string str2=vstrings[0]+vstrings[1]+vstrings[2]+vstrings[3];
cout<<str2<<endl;
unsigned long n = strtol( str2.c_str(), 0, 16 );
cout<<n<<endl;
string s1 = "ffffffff";
unsigned long n1 = strtoul( s1.c_str(), 0, 16 );
cout << n1 << endl;