当前位置: 首页 > ai >正文

Modbus通信的大端和小端字节序

什么是字节序?

当一个数据(比如一个32位的整数 0x12345678)需要存储在内存中时,内存是以字节为单位进行寻址的。这个32位的数据占用了4个字节(0x12, 0x34, 0x56, 0x78)。字节序决定了这些字节是按照什么顺序存入内存的。主要有两种字节序,大端序、小端序。

1、大端序

大端序的核心思想是:高位字节存储在低地址处。
示例:将 0x12345678 存入地址 0x1000 开始的内存
地址0x1000存入0x12, 最高位字节,存放在最低地址
地址0x1001存入0x34
地址0x1002 存入0x56
地址0x1003存入0x78 最低位字节,存放在最高地址
一般网络协议(如TCP/IP)称为大端序

2、小端序

小端序的核心思想是:低位字节存储在低地址处。
示例:将 0x12345678 存入地址 0x1000 开始的内存
地址0x1000 存入0x78 最低位字节,存放在最低地址
地址0x1001存入0x56
地址0x1002 存入0x34
地址0x1003存入0x12 最高位字节,存放在最高地址
Intel 处理器的架构采用的x86、x64采用小端存储,我们的windows电脑一般都是小端存储。

案例

下面的C#代码调用BitConverter.IsLittleEndian来判断当前系统是不是小端存储,可以看出输出结果是true,说明是小端存储,然后我们使用值65534来验证,这个值占据

http://www.xdnf.cn/news/20278.html

相关文章:

  • OpsManage 项目启动脚本与 Docker 配置深度分析
  • Day05 单调栈 | 84. 柱状图中最大的矩形、42. 接雨水
  • LeetCode算法日记 - Day 34: 二进制求和、字符串相乘
  • 【目录-多选】鸿蒙HarmonyOS开发者基础
  • 分布式go项目-搭建监控和追踪方案
  • 国内外支持个人开发者的应用市场
  • OpenCV - 图像的IO操作
  • 【开题答辩全过程】以 住院管理系统为例,包含答辩的问题和答案
  • 从零开始的python学习——文件
  • C++ 面向对象编程:多态相关面试简答题
  • 444444
  • LeetCode - 1089. 复写零
  • MQTT 与 Java 框架集成:Spring Boot 实战(三)
  • RAG提示词分解
  • CentOS系统管理:useradd命令的全面解析
  • Vllm-0.10.1:通过vllm bench serve测试TTFT、TPOT、ITL、E2EL四个指标
  • 多线程任务执行窗体框架jjychengTaskWinForm
  • 浅析Linux内核scatter-gather list实现
  • SQL 实战指南:电商订单数据分析(订单 / 用户 / 商品表关联 + 统计需求)
  • WordPress过滤文章插入链接rel属性noopener noreferrer值
  • 开源与定制化对比:哪种在线教育系统源码更适合教育培训APP开发?
  • 企业微信智能表格高效使用指南
  • Kafka Exactly-Once 语义深度解析与性能优化实践指南
  • 串口发送数据
  • 如何离线安装 VirtualMachinePlatform
  • 基于STM32单片机的家庭医护血氧体温血压吃药监测APP系统
  • 万字长文详解 MyCat 分表分库:从 0 到 1 构建高可用订单系统
  • 能发弹幕的简单视频网站
  • 计算机网络:调制解调器
  • Docker-volume数据卷