将十六进制字符串转换为具有相同格式的int

时间:2016-12-19 18:42:34

标签: c++

我有一个字符串:

string s = "0x10"

我想找到一种方法将其转换为具有相同值的int,即:

int x = 0x10

使用"0x10"时,我从以下代码中获取字符串cout << s: :

std::stringstream stream;
stream << "0x" << hex << setw(2) << setfill('0') << int(h) << endl;
string s = stream.str();

如果使用int h = 16(十六进制为0x10),我会得到正确的结果

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:-4)

与你所拥有的相反

istringstream iss(s);
int x;
iss >> hex >>  x; 

std::stoi

好像你可能很困惑 - 说你想在int中使用0x10而不是16。这就是你如何将int转换为字符串的问题。 int在内存中始终为0b00010000