私は64ビットの16進数文字列で作業していますが、uint64_tの数値を7fよりも高くしたい場合は...正しい番号に変換されません。 私は英語じゃないので、私はコードの一部で、より良い問題を示すことができると思う:7FF ... 64ビットとuint64_t型より高い16進値を扱う方法
void testing()
{
std::string str = "cba321456789654a";
uint64_t res = std::strtol(str.c_str(), NULL, 16);
cout << "RESULT " << std::hex << res << endl;
}
そして、私は取得していた結果は次のとおりです。
RESULT 7fffffffffffffff
私は変更する必要がありますか私の変数の型はより大きなintに?または、uit64_tを使用してこの問題を解決する方法がありますか?