我有以下数组:
static const int8_t ARRAY[8] = {0x18, 0xB8, 0xCE, 0x0, 0x0, 0x0, 0x0, 0x0};
我需要得到一个整数值。对于此ARRAY
最终int
值为13547544
,因为数组中的字节数后跟相反的顺序little-endian
。
示例0xCEB818 = 13547544
我该怎么做? 可以有现成的标准解决方案吗?
提前致谢!
答案 0 :(得分:2)
由于主机平台是little-endian,你可以在数组中指向一个64位整数指针,机器将正确读取数组。
static const int8_t ARRAY[8] = {0x18, 0xB8, 0xCE, 0x0, 0x0, 0x0, 0x0, 0x0};
uint64_t *value = (uint64_t *)&ARRAY;
NSLog(@"%llu", *value); // outputs 13547544