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

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,也就是前面两个字节是高在前,低在后,组成一个参数地址后,低地址在前,高地址在后。开发者不觉得晕吗?

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

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

相关文章:

  • 使用COMSOL生成数据与DeepONet学习静电场电势分布
  • Day52打卡 @浙大疏锦行
  • 机器学习与深度学习21-信息论
  • 短剧系统开发:打造高效、创新的短视频娱乐平台 - 从0到1的完整解决方案
  • 利用Anything LLM和内网穿透工具在本地搭建可远程访问的AI知识库系统(1)
  • 不同环境的配置文件
  • 无感无刷电机的过零点检测电路多图对比
  • Netty从入门到进阶(四)
  • strncpy_s与_TRUNCATE
  • Jinja2 模板在 Python 和 LLM 提示词编辑器中的应用
  • 如何搭建反向海淘代购系统?
  • Cursor 编辑器中的 Notepad 功能使用指南
  • 网络安全攻防领域证书
  • 黑群晖NAS部署DeepSeek模型与内网穿透实现本地AI服务
  • FastJSON 1.2.83版本升级指南:安全加固与性能优化实践
  • BERT vs BART vs T5:预训练语言模型核心技术详解
  • mysql 的卸载- Windows 版
  • Kotlin 中的继承/实现
  • 【Git】面对发布或重要节点,Git如何打Tag?
  • navicat 有免费版了,navicat 官方免费版下载