我一直在尝试将缓冲区中保存的十六进制数转换为无符号整数。然而,我正在读取的每个十六进制数字前面的“0x00”一直给我带来问题,本质上问题(在缩小版本中)看起来像这样:
char b[] = "0x0014A12";
std::stringstream ss;
unsigned int i;
ss << std::hex << b;
ss >> i;
cout << i << endl;
有什么建议吗?
注意:程序输出一个高位十进制数,等于十六进制的 CCCCCC。
最佳答案
这对我来说很好:
#include <iostream>
#include <sstream>
int main(int argc, char* argv[])
{
using namespace std;
string b("0x0014A12");
stringstream ss;
ss << hex << b;
unsigned int dec;
ss >> dec;
cout << b << " = " << dec << endl;
return 0;
}
输出:
0x0014A12 = 84498
关于c++ - 将十六进制缓冲区转换为无符号整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9031439/