在做MODBUS通讯时经常会用到单精度浮点数来表示测量值,比如41 20 00 00代表十进制的10,用代码可以轻松实现转换,但是他是怎么计算出来的呢?查了一些资料后我知道了计算的方法,在此记录一下。

比如10,他的单精度浮点数是41 20 00 00,怎么根据单精度浮点数得出十进制数呢?我们先将其从十六进制转换为十进制,就是65 32 00 00,再把他们对应的8位二进制数写出来01000001 00100000 00000000 00000000一共32位(32位是单精度,64位是双精度),再将其从右往左数划分为三部分:31位,30到23位,22到0位。
1、其中第31位为1位符号位,0表示正数,1表示负数;
2、30到23位为8位指数位,得到1000 0010,十进制为130;
3、22到0位为尾数位,得到010 0000 0000 0000 0000 0000,这里直接在前面加“0.”,得到0.010 0000 0000 0000 0000 0000,也就是二进制小数的0.01,得到十进制0.25;
4、最后是计算的公式:十进制数=(-1)^符号位 * (1+尾数位) * 2^(指数位-127),把1~3的值代入,(-1 ^ 0) * (1+0.25) * 2 ^(130 - 127) = 1 * 1.25 * 2^3 = 10。

再推荐一个单精度浮点数在线转换的网址

http://www.styb.cn/cms/ieee_754.php

想要用C#完成看这篇C#如何将modbus解析单精度浮点数

单精度浮点数转化为十进制数的原理相关推荐

  1. 十六进制的浮点数转化为十进制

    十六进制浮点数转化位十进制 IEEE754标准 转化原理及公式 代码 示例 参考文章 IEEE754标准 IEEE754规定了两种基本的浮点格式:单精度和双精度 单精度:具有24位有效数字,共32位. ...

  2. 如何把单精度二进制数转换成十进制数?

    如何把单精度二进制数转换成十进制数? 单精度二进制数32位,符号1位,指数8位,尾数23位 步骤: 1.如果最高位为1,则为复数,否则为正数. 2.接下来8位为指数,减去二进制01111111(十进制 ...

  3. C语言实现将十六进制数转化为十进制数

    输入一个以回车结束的字符串,滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),输出该字符串并将其转换为十进制数后输出. [输出形式]输出为两行 第一行为整理后的新串 第二行为一个十进制数字 ...

  4. 在Java中将二进制数转化成十进制数

    这里二进制数有两种表示方式,不同方式的代码略有不同: 1.将二进制数用boolean数组表示 假设要求解的二进制数为:1101(也就是十进制数13) public class TransformTse ...

  5. 汇编学习-程序改进:四位十六进制数转化为十进制数

    程序运行效果如下: 如题,程序可以实现四位十六进制数转换为十进制数 思路是,循环输入字符并将其转换为真实的数值(0-9的ASCII码减去30H,a-f的ASCII码减去57H)分别存入内存,再循环将这 ...

  6. 如何把二进制数化成十进制数_如何将二进制数1101.1转化成十进制数?计算步骤是怎样的?...

    展开全部 1101.1转换32313133353236313431303231363533e78988e69d8331333365633938为10进制为13.5 进制转换是人们利用符号来计数的方法. ...

  7. python如何把八进制转换成十进制_Python练习实例82 | 八进制数如何转化为十进制数?...

    八进制数,其实是一种以8为进制的数字,逢8进1,八进制转十进制的算法,各位小伙伴们其实百度搜一下相关的视频,就会出来一大堆,比如下面的一个视频截图,显示了主要的算法. 算法.png 使用Python来 ...

  8. 二进制数转化为十进制数(栈的学习练习)

    对与栈的联系(二进制数字转化为十进制数字) 主要是利用栈"后入先出"的特性,逐个存放二进制数字的个个位数,然后逐一取出,挨个乘以2的次方,然后相加起来,代码由c语言实现, 话不多说 ...

  9. 考前自学系列·计算机组成原理·IEEE 754 单精度浮点数和真值之间的转化

    将十进制数 -0.625 转换为IEEE754的单精度32位浮点数格式,最后格式用十六进制表示 BF200000H IEEE754 单精度浮点数 BF600000H 转换为十进制数 -0.875

最新文章

  1. linux中去掉^M的方法
  2. 「2019中国大数据技术大会」超值学生票来啦!
  3. 用java做一个简单记事本_用记事本写一个简单的java程序
  4. Linuc C 编程实例1
  5. 原 Ubuntu使用VNC运行基于Docker的桌面系统
  6. 用Git虚拟文件系统来解决大型存储问题
  7. Hadoop入门(Hadoop2.7.2源码编译与伪分布安装)
  8. 【python】多进程返回值比较
  9. 二十七、oracle 异常
  10. base64 img图片按父div等比例显示
  11. c语言入门自学课件ppt,C语言入门教程ppt(434页)免费版[精品课件]
  12. 计算机应用的基础教学实践论文,【计算机应用论文】计算机应用的基础教学实践(共2834字)...
  13. sprint演示会议
  14. [转] 世界上超难找的药方,为爸妈留着,怕以后找不到了就转来了
  15. python 索引方法loc和iloc
  16. Bazinga HDU - 5510
  17. 陶  朱  商  经
  18. chm打开秒退_用熊猫看书来看chm,却自动退出,什么原因?
  19. ubuntu桌面幻灯片_如何在Ubuntu中创建墙纸幻灯片
  20. HTML5 CSS3 精美案例 实现VCD包装盒个性幻灯片

热门文章

  1. 原标题:我如何三天就写完了毕业论文!
  2. Rasa使用指南01
  3. 框架源码系列九:依赖注入DI、三种Bean配置方式的注册和实例化过程
  4. 在以太坊开发自己的ERC-20代币及如何ICO
  5. jQuery 与for相关的遍历方法
  6. 持续登顶全网热搜的运动·棒球
  7. uni-app微信公众号登录
  8. 学习进度总结————王烁130201218
  9. 双 JK 触发器 74LS112 逻辑功能。真值表_数电实验 | 时序逻辑电路
  10. 【腾讯Bugly干货分享】QFix探索之路—手Q热补丁轻量级方案