浮点数 (IEEE-754)

浮点数又称“实数”,一个浮点数包含三个部分

  1. 符号位(S)
  2. 阶码
  3. 有效数字

S:阶码:有效数字

浮点数是由科学二级制来表示的。

三种类型的浮点数:

  1. 短浮点数(32bit):  S(bit31):阶码(bit30~bit23):有效数字(bit22~bit0)
  2. 长浮点数(64bit):  S(bit63):阶码(bit62~bit52):有效数字(bit51~bit0)
  3. 临时符点数(80bit):  S(bit79):阶码(bit78~bit64):有效数字(bit63~bit0)

浮点数的转换

1.将10进制转化为二进制数

2.规格化二进制数

3.计算出阶码

4.以浮点数格式存储该数

比如: 浮点数100.2510,转为单精度浮点数

1. 100.25 = 1100100.01

2. 1100100.01 = 1.10010001 x 2^6

3. 110 + 0111111 = 10000101

4. 符号位 = 0

阶码 = 10000101

有效数字 = 1001 0001 0000 0000 0000 000

时间: 2024-11-08 20:31:34

浮点数 (IEEE-754)的相关文章

IEEE 754 浮点数的表示精度探讨

IEEE 754 浮点数的表示精度探讨 前言 从网上看到不少程序员对浮点数精度问题有很多疑问,在论坛上发贴询问,很多热心人给予了解答,但我发现一些解答中有些许小的错误和认识不当之处.我曾经做过数值算法程序,虽然基本可用,但是被浮点数精度问题所困扰:事情过后,我花了一点时间搜集资料,并仔细研究,有些心得体会,愿意与大家分享,希望对IEEE 754标准中的二进制浮点数精度及其相关问题给予较为详尽的解释.当然,文中任何错误由本人造成,由我承担,特此声明. 1. 什么是IEEE 754标准? 目前支持二

IEEE 754浮点数表示标准

二进制数的科学计数法 C++中使用的浮点数包括采用的是IEEE标准下的浮点数表示方法.我们知道在数学中可以将任何十进制的数写成以10为底的科学计数法的形式,如下 其中显而易见,因为如果a比10大或者比1小都能够再次写成10的指数的形式,如 然而要想在二进制的世界中将数字写成以10为底的科学计数法的形式,着实有点麻烦,因为你首先需要将二进制的数先化成10进制的表示方法,然后才能写成科学计数法的形式.但是如果我们稍微变通一下科学计数法的标记方法,问题就变得特别的简单了.之所以数学上使用的科学计数法选

IEEE 754标准浮点数

一.IEEE 754浮点数的表示 浮点数数学表示: 符号位(sign):决定该浮点数的正负 尾数(significand):二进制小数,范围在[1,2)或者[0,1)中 阶码(exponent):对浮点数加权,权重为2的E次幂 单精度浮点数:在单精度的浮点数中,符号位编码为1位二进制位,阶码编码为为8位二进制位,尾数编码为23位二进制位: 双精度浮点数:在双精度浮点数中,符号位编码为1位二进制位,阶码编码为为11位二进制位,尾数编码为52位二进制位: 二.浮点数编码知识储备 <1>浮点数阶码的

浮点数标准IEEE 754相关材料

下面的内容不是必须掌握的,是为了满足一些好奇心强同学的需要.IEEE 754目前为C标准所支持,而且许多硬件均支持,可以说目前浮点数处理基本是IEEE 754的天下.http://zh.wikipedia.org/wiki/IEEE_754 中文材料1.4 IEEE 浮点运算标准 - 华东师范大学数学系这个比较简略,http://www.pediy.com/kssd/pediy06/pediy6610.htm 该文中有几个更具体的例子,本人未仔细核实http://people.uncw.edu/

IEEE 754 浮点数在计算机中的表示方法

IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用.这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number)),一些特殊数值(无穷(Inf)与非数值(NaN)),以及这些数值的“浮点数运算符”:它也指明了四种数值舍入规则和五种例外状况(包括例外发生的时机与处理方式). IEEE 754规定了四种表示浮点数值的方式:单精确度(32位).双精确度(64位).延伸单精确度(43比特以上,很少使

如何理解IEEE 754标准对Java中float值和double值的规定

在Java语言中,我们可以使用float和double这两种基本数据类型来表示特定的数据. 这两种数据类型,本质上是浮点数(floating-point number),浮点是一种对于实数的近似值数值表现法,由一个有效数字加上幂数来表示. 之所以使用浮点数,是因为计算机在使用二进制运算的过程中,无法将所有的十进制小数准确的换算为二进制,只能使用近似值来表示. 使用浮点数表示数值的方法很多,在Java中,和C语言一样,float和double都采用了使用最为广泛的IEEE 754标准. IEEE

IEEE 754标准

IEEE 754-1985 was an industry standard for representing floating-point numbers in computers, officially adopted in 1985 and superseded in 2008 by IEEE 754-2008. During its 23 years, it was the most widely used format for floating-point computation. I

二进制浮点数,IEEE标准

额...啥叫IEEE标准?别着急啊,往后看,这一次我和大家一起学习一下浮点数,这里没有无符号,没有补码,俗话说得好,上帝给你关了一扇门,肯定给你打开一扇窗,没有那种东西饿,肯定有别的.如果你真正进入了浮点数的世界,离着你称霸武林不远了! 写在前面 整数运算虽然能解决计算机当中有关信息的一部分分存储,运算等功能,但却仍然是不够的.否则结社我们要做一个超市的库存管理系统,那么所有的商品的价格只能是整数,还有就是银行的利息也只能是整数!!是不是想想就开心!!哈哈哈,屌丝! so,有时我们需要更精确的数

浮点数float累加误差分析与解决

1.  浮点数IEEE 754表示方法 要搞清楚float累加为什么会产生误差,必须先大致理解float在机器里怎么存储的,具体的表示参考[1] 和 [2], 这里只介绍一下组成 由上图可知(摘在[2]), 浮点数由: 符号位 + 指数位 + 尾数部分, 三部分组成.由于机器中都是由二进制存储的,那么一个10进制的小数如何表示成二进制.例如: 8.25转成二进制为1000.01, 这是因为 1000.01 = 1*2^3 + 0*2^2 + 0*2^1 + 0*2^0 + 0*2^-1 + 2*

浮点数float累加误差解决方式总结

首先是float累加产生误差的原因,该部分转自:http://blog.csdn.net/zhrh0096/article/details/38589067 1.  浮点数IEEE 754表示方法 要搞清楚float累加为什么会产生误差,必须先大致理解float在机器里怎么存储的,具体的表示参考[1] 和 [2], 这里只介绍一下组成 由上图可知(摘在[2]), 浮点数由: 符号位 + 指数位 + 尾数部分, 三部分组成.由于机器中都是由二进制存储的,那么一个10进制的小数如何表示成二进制.例如