gpt4 book ai didi

c++ - 如何简单地从小端格式的缓冲区中重建数字

转载 作者:行者123 更新时间:2023-11-30 03:08:14 24 4
gpt4 key购买 nike

假设我有:

typedef unsigned long long uint64;

unsigned char data[BUF_SIZE];

uint64 MyPacket::GetCRC()
{
return (uint64)(data[45] | data[46] << 8 |
data[47] << 16 | data[48] << 24 |
(uint64)data[49] << 32| (uint64)data[50] << 40 |
(uint64)data[51] << 48| (uint64)data[52] << 56);
}

只是想知道,是否有更清洁的方法。我尝试了一个 uint64 变量的 memcpy但这给了我错误的值(value)。我想我需要反过来。数据采用小端格式。

最佳答案

使用 shift-or sequence 的一大优势在于,无论您的主机是大端还是小端,它都能正常工作。

当然,您总是会调整表达式。就个人而言,我尝试加入“对”,即一次两个字节,然后是两个短字节,最后是两个长字节,因为这将有助于编译器生成更好的代码。

关于c++ - 如何简单地从小端格式的缓冲区中重建数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5230338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com