将十进制数转换为单精度浮点数

如何将十进制数转换为单精度浮点数参考

首先要知道

IEEE浮点标准:V=(-1)^s * M * 2^E


1.符号(sign)s决定这个数是负数(s=1)还是正数,0(s=0)。

2.尾数(significand) M是一个二进制小数.

3.阶码(exponent)E对浮点数加权。

其次要知道单精度浮点数一般下是32位,由三段组成,第一段只有一位即s,第二段有8位,如何得到,可以通过公式中2的指数加上127,所得到的数转换成二进制可得,第三段是由转换的二进制小数中小数部分再补0到23位所得

因此5.75转换成二进制得101.11=1.0111 * 10 ^2

s = 0, E = 2 + 127 = 129,E转换成二进制得10000001,小数部分为0111,再补0至23位

最后5.75的单精度浮点数为01000000101110000000000000000000

同理161.875转换成二进制得10100001.111=1.0100001111 * 2 ^ 7

s = 0, E = 7 + 127 = 134,E转换成二进制得10000110,小数部分为0100001111,再补0至23位

最后161.875的单精度浮点数为01000011001000011110000000000000

-0.0234375的绝对值转换成二进制得0.0000011=1.1 * 2 ^ -6

s = 1, E = -6 + 127 = 121,E转换成二进制得01111001,小数部分为1,再补0至23位

最后-0.0234375的单精度浮点数为10111100110000000000000000000000

在python中实现浮点数的转换

码云

验证上述转换是否正确如图

参考网站

1.https://blog.csdn.net/qq_40890756/article/details/83111431

2.https://blog.csdn.net/linda_ds/article/details/78136316

3.http://c.biancheng.net/view/314.html

IEEE754浮点数的转换的更多相关文章

  1. IEEE754 浮点数

    IEEE754 浮点数 1.阅读IEEE754浮点数 A,阶码是用移码表示的,这里会有一个127的偏移量,它的127相当于0,小于127时为负,大于127时为正,比如:10000001表示指数为129 ...

  2. 震惊!计算机连0.3+0.6都算不对?浅谈IEEE754浮点数算数标准

    >>> 0.3+0.6 0.8999999999999999 >>> 1-0.9 0.09999999999999998 >>> 0.1+0.1+ ...

  3. 把一个IEEE754浮点数转换为IBM370浮点数的C#代码

    把一个IEEE754浮点数转换为IBM370浮点数的C#代码. 在这个网页上有古老的IBM370浮点格式的说明. // http://en.wikipedia.org/wiki/IBM_Floatin ...

  4. matlab中实现 IEEE754浮点数 与 一般十进制数之间 互相转换的方法

    ------------恢复内容开始------------ %2020/12/2 11:42:31clcformat long % IEEE754 to deca = '40800000'a = d ...

  5. delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)

    重新书写了float型转为十六进制的delphi程序 Function FloatToHex(Value: single): string; var l, i: integer; HexText,te ...

  6. IEEE754浮点数

    前言 Go语言之父Rob Pike大神曾吐槽:不能掌握正则表达式或浮点数就不配当码农! You should not be permitted to write production code if ...

  7. IEEE754浮点数表示法

    IEEE二进制浮点数算术标准(ANSI/IEEE Std 754-1985)是一套规定如何用二进制表示浮点数的标准.就像"补码规则"建立了二进制位和正负数的一一对应关系一样,IEE ...

  8. IEEE Floating Point Standard (IEEE754浮点数表示法标准)

    浮点数与定点数表示法是我们在计算机中常用的表示方法 所以必须要弄懂原理,特别是在FPGA里面,由于FPGA不能像在MCU一样直接用乘除法. 定点数 首先说一下简单的定点数,定点数是克服整数表示法不能表 ...

  9. Python中4位1进制数与float浮点数互相转换

    import struct s = 'F4CEF042' print(s) #<是小端,>是大端,f代表浮点数 print(struct.unpack('<f', bytes.fro ...

随机推荐

  1. Springboot自带定时任务实现动态配置Cron参数

    同学们,我今天分享一下SpringBoot动态配置Cron参数.场景是这样子的:后台管理界面对定时任务进行管理,可动态修改执行时间,然后保存入库,每次任务执行前从库里查询时间,以达到动态修改Cron参 ...

  2. 简单C++线程池

    简单C++线程池 Java 中有一个很方便的 ThreadPoolExecutor,可以用做线程池.想找一下 C++ 的类似设施,尤其是能方便理解底层原理可上手的.网上找到的 demo,基本都是介绍的 ...

  3. 源码解析Spring AOP的加载与生效

    本次博主主要进行Spring AOP这里的解析,因为在工作中使用后,却不知道背后的实现原理并在使用的过程中发现了一些认知缺陷,所以决定写这么一篇文章以供大家参考参考,进入正题. 本次博主使用了@Asp ...

  4. noip模拟44

    A. Emotional Flutter 直接将所有黑块平移到 \([1-k,0]\) 的区间即可,然后找有没有没被覆盖过的整点 注意特判 \(1-k\) 以及 \(0\) 的可行性,考场这里写挂成 ...

  5. 快速模式第二包: quick_inI1_ouR1()

    文章目录 1. 序言 2. quick_inI1_outR1()流程图 3. 快速模式消息②数据包格式 4. 源码分析 4.1 quick_inI1_outR1() 4.2 quick_inI1_ou ...

  6. GIT:创建、查看分支命令(git branch -vv)

    在开发过程中一般会用到Git进行版本管理,创建查看分支并与远程仓库交互是非常常见的操作. branch分支 是指在开发主线中分离出来的,做进一步开发而不影响到原来的主线. Git存储的不是一系列的更改 ...

  7. tomcat快速发布备份脚本

    一.说明 我们每次在tomcat中发布新war包,总是要经历[备份-停机-上传-启动]这几个部分,其中上传的环节和网速有极大相关性,要是网速很慢,那么整个发布的时间就会很长. 如果我们不借助于自动化发 ...

  8. HearthbuddyHelper已经开源

    https://github.com/V-arc/HearthbuddyHelper 只是为了稳定,没耗时多久写的一个中控,只是在逐渐堆加,并未进行重构. 通过写这个感受到自己对异步和wpf的理解还有 ...

  9. excel中快速删除空白行/区域

    选中要删除的空白所在的列 按Ctrl+G 选择空值 右键->删除->整行

  10. Linux内核中断顶半部和底半部的理解

    文章目录 中断上半部.下半部的概念 实现中断下半部的三种方法 软中断 软中断模版 tasklet tasklet函数模版 工作队列 工作队列函数模版 进程上下文和中断上下文 软中断和硬中断的区别 硬中 ...