gpt4 book ai didi

c - 如何在大端机器 (C) 上读取 4 字节整数后写入 24 位消息?

转载 作者:行者123 更新时间:2023-12-01 11:58:21 25 4
gpt4 key购买 nike

我正在构造一条消息以通过网络发送一个 24 位数字。对于小端机器,代码是(ptr 是指向消息缓冲区的指针):

*ptr++ = (num >> 16) & 0xFF;
*ptr++ = (num >> 8) & 0xFF;
*ptr++ = (num) & 0xFF;

(因此,如果 num0、num1、num2 和 num3 是组成 num 的各个字节,则消息将被编码为 num2|num1|num0。)

在大端机器上编码 num2|num1|num0 的代码应该是什么?

最佳答案

这里的问题是,消息 应该以什么字节顺序发送/构建?因为对于 num 而言,无论您是在小端还是大端机器上都无关紧要,因为您已经以与端序无关的方式将 num 划分为各个字节.

您发布的代码以大端(又名网络字节顺序)存储 24 位 num。因此,如果那是您想要的,那么您已经完成了。如果你想把它存储在 big little 中,只需颠倒顺序即可:

*ptr++ = (num)       & 0xFF;
*ptr++ = (num >> 8) & 0xFF;
*ptr++ = (num >> 16) & 0xFF;

关于c - 如何在大端机器 (C) 上读取 4 字节整数后写入 24 位消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3965873/

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