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

byte数组变量转int变量

缘起:modbus传输数据,从下位机传来的数据存储在byte数组里面,转意存储在具体变量中时,需要对应位置。

c#中有对应的指令,示例代码如下:

How to convert a byte array to an int - C# | Microsoft Learn

byte[] bytes = [0, 0, 0, 25];

if (BitConverter.IsLittleEndian) Array.Reverse(bytes);

int i = BitConverter.ToInt32(bytes, 0);

Console.WriteLine($"int: {i}"); // Output: int: 25

试了一下,我去,第一行就错了,要用大花括号,巨硬,你们闹啥呢?

中间那个掉个的函数,有输出的是25,没有输出的就是419430400(0x19000000),十进制的25,还要转换成十六进制的0x19,才看懂了,行,你们真厉害。

回头来看modbus的实现,基本语句就是特定地址参数的读写,但是不知道为什么,下位机的写法也是各显神通,由于地址对应的是16bit,也就是两个字节,操作4字节时,byte数组顺序,有给搞成花式变化的,比如四个字节{1,2,3,4},你猜是什么?对应int是0x03040102,也就是前面两个字节是高在前,低在后,组成一个参数地址后,低地址在前,高地址在后。开发者不觉得晕吗?

照这个写法,还不如直接弄个四字节数组,来回自己折腾呢。捋顺了再转意出变量。

各个厂家的开发人员自己定义的变量方式还是和具体厂家确认好吧

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

相关文章:

  • 一[2]、ubuntu18.04环境 yolov8 + realsenseD435i 实时效果测试
  • Docker 网络模式
  • Doris与DS结合实现MySQL侧的Upsert功能
  • SpringCloud + MybatisPlus:多租户模式与实现
  • Catch2 开源库介绍与使用指南
  • 【threejs】每天一个小案例讲解:常见材质
  • oracle 23ai json简单使用
  • reactive() 和 toRef()
  • 微服务架构中的 Kafka:异步通信与服务解耦(四)
  • 《哈希算法》题集
  • 最新Transformer模型及深度学习前沿技术应用
  • python学习---dayday2
  • 使用文件的基本操作和文件内容读写操作实现三个功能
  • 中间件是微服务架构的支撑工具,微服务是中间件的应用场景之一。
  • 基于PHP的图书商城(vue版)
  • 拨码开关(DIP Switch)原理、参数、选型与应用指南
  • Linux x86_64架构下的四级分页机制详解
  • Cordova移动应用对云端服务器数据库的跨域访问
  • 图像处理与机器学习项目:特征提取、PCA与分类器评估
  • AI基础知识(07):基于 PyTorch 的手写体识别案例手册
  • 一篇文章理解js闭包和作用于原理
  • 【消息队列】——如何使用Actor模型解决并发问题
  • 基于springboot视频及游戏管理系统+源码+文档
  • Python图像处理基础(六)
  • 域名证书自动更新-acme通用版
  • 网络编程之Modbus与HTTP
  • MySQL中InnoDB存储引擎底层原理与MySQL日志机制深入解析
  • 【在线五子棋对战】五、前端扫盲:html css javascript ajax jquery websocket
  • 应用案例丨一键测量300+工件,QM系列闪测仪批量检测
  • 多模态大语言模型arxiv论文略读(119)