假设我们有一个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
变量,该怎么办?
最佳答案
将4字节uint32_t
转换为char[8]
的最简单方法:
uint32_t var = 100;
char res[8]{};
res[0] = (var >> 28) & 0XF;
res[1] = (var >> 24) & 0XF;
res[2] = (var >> 20) & 0XF;
res[3] = (var >> 16) & 0XF;
res[4] = (var >> 12) & 0XF;
res[5] = (var >> 8) & 0XF;
res[6] = (var >> 4) & 0XF;
res[7] = (var >> 0) & 0XF;
您可以将其简化为循环: int shiftby = 32;
for (int i = 0; i < 8; i++) {
res[i] = (var >> (shiftby -= 4)) & 0xF;
}
关于c++ - 如何将uint32_t数字转换为char [8]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63014768/