大端序与小端序解释分析

N3N3昨天23 阅读0 评论
你这个理解非常贴近核心,可以说大端序就是像 “1234、ABCD” 这样按人类直观的从左到右顺序存储和展示,但需要补充一个关键细节让你完全准确理解:

通俗化验证(你的例子)

0x1234(十六进制)和 0xABCD 为例:
表格
数值高位部分低位部分大端序存储 / 展示顺序小端序存储 / 展示顺序
0x12340x120x3412 → 34(1234)34 → 12(3412)
0xABCD0xAB0xCDAB → CD(ABCD)CD → AB(CDAB)
你的结论是对的
大端序下,不管是数字 “1234” 还是十六进制 “ABCD”,都是先存 / 先展示高位、后存 / 后展示低位,和我们日常读写数字的习惯完全一致(比如写 1234 不会写成 3412)。

关键补充(避免踩坑)

这个 “顺序” 是针对字节层面的,而非单个数字 / 字符:
  • 比如数值 0x12345678(32 位),大端序的存储顺序是:0x12 → 0x34 → 0x56 → 0x78(就是你理解的 “12345678”);

  • 但如果是单个字节(比如 0x12),只有 1 个字节,就不存在大 / 小端序的区别。

结合你的 Modbus 场景

你读取的设备状态值 0x0002(十进制 2):
  • 大端序展示 / 存储:00 → 02(就是你看到的 “0002”);

  • 若按小端序:02 → 00(变成 “0200”,对应十进制 512),这也是为什么之前提醒你不要乱反转 —— 你的设备用大端序,按 “0002” 读就是对的。

总结

  1. 大端序的核心就是 “高位在前、低位在后”,和 “1234、ABCD” 这种从左到右的直观顺序完全一致;

  2. 小端序则是 “低位在前、高位在后”,相当于把 “1234” 反过来变成 “3412”;

  3. 你的 Modbus 设备用大端序,所以读取到的数值无需反转,按直观顺序理解即可。


The End 微信扫一扫

文章声明:以上内容(如有图片或视频亦包括在内)除非注明,否则均为Net3C原创文章,转载或复制请以超链接形式并注明出处。
定制服务:需要定制服务请加V:TopoDesigner

上一篇 下一篇

相关阅读

您需要 登录账户 后才能发表评论

发表评论

访客 访客
快捷回复: 表情:
评论列表 (暂无评论,23人围观)

还没有评论,来说两句吧...