【发布时间】:2020-11-10 20:22:05
【问题描述】:
假设我们有一个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 变量,我应该怎么做呢?
【问题讨论】:
-
sizeof(uint32_t)通常是4。你确定要char[8]吗?您的标题和代码似乎不匹配。该代码似乎将char[]转换为uint32_t。 -
@TedLyngmo 十六进制数字是半字节。
-
@eerorika 是的,但 OP 也谈到了二进制文件。我不确定转换应该采用哪种方式。 :)
-
查找标准(C++11 及更高版本)函数
std::stoul()- 在标准头文件<string>中指定。
标签: c++ binary hex converters