Suppose we have a string s = "453acd0f"
. Now I want to do something like this:
uint32_t res = 0;
for (size_t i = 0; i < 8; ++i) {
res |= ConvertCharToHexNumber(s[8 - i - 1]) << (i * 4);
}
But how I should do this if I have a uint32_t var
variable which I read from a binary file?
The simplest way to convert a 4 byte uint32_t
into 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;
You can reduce this to a loop:
int shiftby = 32;
for (int i = 0; i < 8; i++) {
res[i] = (var >> (shiftby -= 4)) & 0xF;
}
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments