如何表示十六进制数字



我有一个由4个十六进制元素组成的数组,我想将这些值表示为一个十六进制数

即:

int arr[4] = {0xD4, 0x9F, 0x2E, 0x4C};   
int result = 0xD49F2E4C;   //The total number

我尝试过字符串串联,但结果与不同

如何做到…

这些不是十六进制、十进制或其他任何东西,尽管您在源代码中选择了使用符号。

它们只是数字

所以,使用你一直用来计算数字的东西:算术!

考虑一下:

0xD49F2E4C = 0xD4000000 + 0x009F0000 + 0x00002E00 + 0x0000004C

因此,在这种情况下,比特运营商是你的朋友:

int result = arr[0] << 24;
result |= arr[1] << 16;
result |= arr[2] << 8;
result |= arr[3];

不过,为了避免意外,您应该将所有这些设置为unsigned。在这个特定的例子中,我建议使用uint32_t,这样您就可以知道结果变量的大小是合适的。

最新更新