【发布时间】:2013-09-04 07:59:06
【问题描述】:
如何将字节数组uint8_t[8]的八个值追加到一个变量uint64_t中?
uint8_t array[8] = { 0xe4, 0x52, 0xcb, 0xbe, 0xa4, 0x63, 0x95, 0x8f };
uint64_t result = 0;
for(int i = 0; i < sizeof(array); ++i)
{
// what to do here?
}
在上面的示例中,result 应该以值 0xe452cbbea463958f 结尾。我正在寻找一个不完全绑定到数组中的八个元素的通用解决方案。
【问题讨论】:
-
result <<= 8; result |= array[i]; -
@H2CO3:是的,可以。可以将一个转换为另一个吗?
-
@RobertHarvey 据我所知,没有(严格别名)。不过,如果机器是大端(现在不太可能),则可以使用
memcpy()。 -
@H2CO3:完全正确。 :)
-
@danijar 是的,它会的。它只取数组开头的 8 个字节并将其放入
result。
标签: c++ integer hex byte bytearray