通过使用 std::hex 和 std::dec,可以从字符串解析十六进制并将其转换为 C++ 中的十进制数。但是如果十六进制数是有符号的呢?
例如,如果输入“F1”是无符号十六进制,则以下代码将产生 241,这是正确的,但如果输入是有符号十六进制,则结果应为 -15。是否有可以处理带符号的十六进制值的 C++ 函数?
int n;
stringstream("F1") >> std::hex >> n;
std::cout << std::dec << "Parsing \"F1\" as hex gives " << n << '\n';