我有一个由 4 个十六进制元素组成的数组,我想将这些值表示为一个十六进制数
即:
int arr[4] = {0xD4, 0x9F, 0x2E, 0x4C};
int result = 0xD49F2E4C; //The total number
我尝试过字符串连接,但结果不一样
如何做...
最佳答案
尽管您选择在源代码中使用它们的表示法,但它们不是十六进制、十进制或其他任何形式。
它们只是数字。
所以,使用您通常用于数字的东西:算术!
考虑一下:
0xD49F2E4C = 0xD4000000 + 0x009F0000 + 0x00002E00 + 0x0000004C
因此,在这种情况下,按位运算符是您的 friend :
int result = arr[0] << 24;
result |= arr[1] << 16;
result |= arr[2] << 8;
result |= arr[3];
不过,您应该将所有这些内容设为无符号
,以避免出现意外。在这个特定的实例中,我建议使用 uint32_t
,这样您也知道结果变量的大小正确。
关于c++ - 我如何表示十六进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61188243/