IEEE754二进制浮点数算术标准
对于32位浮点数
sign: 符号,1位
exponent: 指数,8位,偏码
fraction: 分数,23位,原码

特殊值

指数域的编码值 = 指数的实际值 + 127
这样按照字典序的顺序就可以比较两个指数域的编码值的大小,在比较两个浮点数大小时比使用原码方便
规约形式
“规约”是指用唯一确定的浮点形式去表示一个值。
即要求fraction部分最高有效位为1,且指数域的编码值不为0
由于这种表示下的尾数有一位隐含的二进制有效数字(因为最高位总是1,所以按照规约数解析时,自动在最前面添加1,这个1是不存储在bit中的,非规约数不会自动添加1),为了与二进制科学计数法的尾数(mantissa)相区别,IEEE754称之为有效数(significant)。
IEEE754要求
exponent编码值为全0,fraction部分存储的编码值不为全0时,按照非规约数解析,此时实际指数看作-126而不是-127
exponent为1~2e-1,-2e-2~-1,按照规约数解析
非规约形式
exponent为0,fraction不为0,之所以同时存在非规约形式,是因为绝对值最小的规约浮点数为1.0*2-126,绝对值次小的规约浮点数为(1+2-23)*2-126,两者距离2-149,而绝对值最小的规约浮点数于0的距离是2-126,可以看出,两个绝对值很小的规约浮点数之间的距离比它们到0的距离近很多,这样导致两个不等的很小的规约浮点数的差变成0,这种方式称作突然式下溢出(abrupt underflow)。而渐进式下溢出(gradual underflow)因为引入非规约浮点数,最小的非规约浮点数的绝对值为2-23*2-126,次小的为2-22*2-126,两者距离2-149,同时,最小的非规约浮点数与0之间的距离也是2-149。
浮点数举例

参考文献:https://zh.wikipedia.org/wiki/IEEE_754
IEEE754二进制浮点数算术标准的更多相关文章
- IEEE 754二进制浮点数算术标准
可能很多人都遇到过浮点数精度丢失的问题,下面以JavaScript为例. 1 - 0.9 = 0.09999999999999998 纳尼,不应该是0.1么,怎么变成0.099999999999999 ...
- IEEE二进制浮点数算术标准(IEEE 754)
整理自IEEE 754 IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用.这个标准定义了表示浮点数的格式(包括负零-0) ...
- IEEE二进制浮点数算术标准学习
看到有网上有个项目是要求将浮点数用二进制表示出来,需要用IEEE754标准,查了查维基和深入理解计算机系统,重新学习了一遍浮点数在计算机中的表示和内存中的存储, 先简单的做个笔记,后面需要更深入的理解 ...
- 深入理解计算机系统(2.7)---二进制浮点数,IEEE标准(重要)
2.6我们进行了二进制整数运算的最后一役,本次LZ将和各位一起进入浮点数的世界,这里没有无符号,没有补码,但是有各种各样的惊奇.倘若你真正的进入了浮点数的世界,一定会发现它原来是这么有意思,而不是像之 ...
- 震惊!计算机连0.3+0.6都算不对?浅谈IEEE754浮点数算数标准
>>> 0.3+0.6 0.8999999999999999 >>> 1-0.9 0.09999999999999998 >>> 0.1+0.1+ ...
- IEEE 二进制浮点数的表示
朋友在谈一个物流相关的项目,是以前项目的一个延续,涉及到后台的扩展,手机端的App,外加两个App的对接的蓝牙打印机.这个项目前后说了一个多月了吧,最近才草拟了协议.项目本来不复杂,但是客户却如此的拖 ...
- [学习笔记]Javascript采用二进制浮点数和四舍五入的错误
1.样例 var a = .3 - .2 //0.09999999999999998 var b = .2 - .1 //0.1 a == b //false 出现这样的原因在于 1.Javascri ...
- IEEE 754浮点数表示标准
二进制数的科学计数法 C++中使用的浮点数包括采用的是IEEE标准下的浮点数表示方法.我们知道在数学中可以将任何十进制的数写成以10为底的科学计数法的形式,如下 其中显而易见,因为如果a比10大或者比 ...
- Knowledge Point 20180305 十进制转换成二进制浮点数
如何将十进制的浮点数 转换二进制的浮点数,分为两部分: 1. 先将整数部分转换为二进制, 2. 将小数部分转换为二进制, 然后将整数部分与小数部分相加. 以 20.5 转换为例,20转换后变为1010 ...
随机推荐
- Nginx location规则匹配
^~ 标识符匹配后面跟-一个字符串.匹配字符串后将停止对后续的正则表达式进行匹配,如location ^~ /images/ , 在匹配了/images/这个字符串后就停止对后续的正则匹配 = 精 ...
- 03_mysql-python模块, linux环境下python2,python3的
---恢复内容开始--- 1.Python2 正常 [root@IP ~]# pip install mysql-python DEPRECATION: Python 2.7 will reach t ...
- JVM相关面试
来源:老码农 ,lingsui.github.io/2018/03/30/JVM面试题/ 1.你知道哪些或者你们线上使⽤什么GC策略?它有什么优势,适⽤于什么场景? 参考 触发JVM进行Full ...
- Gym - 101955K Let the Flames Begin 约瑟夫环
Gym - 101955KLet the Flames Begin 说实话,没怎么搞懂,直接挂两博客. 小飞_Xiaofei的约瑟夫问题(Josephus Problem)3:谁最后一个出列 小飞_ ...
- vue-cli3运行本地项目后,端口不随设置的随便变化
今天群里有个端友说到了这个,没当回事,devserver中虽然设置了端口,但是启动本地项目后,端口还是随便更换,网上回去初始化了一下项目,结果也遇到这情况了,刚好,我们只需要 npm install ...
- 1.1 OC class new summary
1.http://www.cnblogs.com/mjios/archive/2013/04/06/3002814.html 2.How to create a oc class? 3. 3.1 In ...
- wqy的B题
wqy的B题 题意: 和一道叫机器翻译的题差不多,不过这道题要难一些,没有规定必须删除最早入队的. 解法: 解法和[POI2005]SAM-Toy Cars这道题差不多,考虑贪心. 每次选取下一次使用 ...
- ORM SQLAlchemy 表于表的关系
1表与表之间三种关系 1.1 一对一关系 举例: 一个丈夫对应一个妻子,一个妻子对应一个丈夫 1.2 一对多关系 举例:一个人可以拥有多辆汽车,要求查询某个人拥有的所有车辆 分析:这种情况其实也可以采 ...
- Java锁优化
Java锁优化 应用程序在并发环境下会产生很多问题,通常情况下,我们可以通过加锁来解决多线程对临界资源的访问问题.但是加锁往往会成为系统的瓶颈,因为加锁和释放锁会涉及到与操作系统的交互,会有很大的性能 ...
- About Xi’an
Introduction Ancient Capital It is the birthplace of the Chinese Nation, is one of the four ancient ...