c++ - 如何将 uint32_t 数字转换为 char[8]?
问题描述
假设我们有一个string s = "453acd0f"
. 现在我想做这样的事情:
uint32_t res = 0;
for (size_t i = 0; i < 8; ++i) {
res |= ConvertCharToHexNumber(s[8 - i - 1]) << (i * 4);
}
uint32_t var
但是,如果我有一个从二进制文件中读取的变量,我应该怎么做呢?
解决方案
我相信 iomanip 和流操作可能会对您有所帮助。
#include <sstream>
#include <iomanip>
std::string s="453acd0f";
std::stringstream ss(s);
uint32_t res;
ss >> std::setbase(16) >> res; // hex. string to int. res==1161481487
ss.str(string());
ss.clear();
s.clear();
ss << std::setbase(16) <<res; // dec. int to hex. string.
s = ss.str(); // s==453acd0f