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

Converting a hex string to int with same formatting

本文关键字:字符串 转换 int 十六进制 格式      更新时间:2023-10-16

我有一个字符串:

string s = "0x10"

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

int x = 0x10

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

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

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

有什么办法做到这一点吗?

它的相反

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

std::stoi

似乎也许您感到困惑 - 说您要在INT中使用0x10,而不是16.这就是您如何将int转换为字符串的问题。内存中的int始终为0b00010000