当前位置: 代码迷 >> C# >> 单精度的float 32位如何拆分成4个字节的byte,byte需要知道高低位,因为要按通讯协议以二进制发送给PLC
  详细解决方案

单精度的float 32位如何拆分成4个字节的byte,byte需要知道高低位,因为要按通讯协议以二进制发送给PLC

热度:75   发布时间:2016-05-05 03:57:24.0
单精度的float 32位怎么拆分成4个字节的byte,byte需要知道高低位,因为要按通讯协议以二进制发送给PLC
比如把 123.34f 拆分成 byte[] b=new byte[4]     b[0] b[1] b[2] b[3],并且知道b[0]  b[1] b[2] b[3]的高低位,按通讯协议组合以后发送,PLC收到123.4f  。int可以>>右移拆分出来组合发送,但是浮点型不能右移操作,也想过把float先*100转换成int发送,让PLC收到数据后自己除以100解析,但是不能做到。请指点怎么把浮点数拆分成
------解决思路----------------------
用 BitConverter.GetBytes(float) 方法可以将一个 float 转换成一个 byte 数组

不要把 C# 想的那么弱智,什么东西都得自己动手

------解决思路----------------------
同意楼上,bitconvert好用不贵
------解决思路----------------------
BitConverter.GetBytes(float) 高低位自己用Recivec方法倒序正序都成
  相关解决方案