首页 > 解决方案 > 如何将 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但是,如果我有一个从二进制文件中读取的变量,我应该怎么做呢?

标签: c++binaryhexconverters

解决方案


我相信 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

推荐阅读