定点数与浮点数区别

定点数与浮点数区别

ID:30417427

大小:86.58 KB

页数:12页

时间:2018-12-29

定点数与浮点数区别_第1页
定点数与浮点数区别_第2页
定点数与浮点数区别_第3页
定点数与浮点数区别_第4页
定点数与浮点数区别_第5页
资源描述:

《定点数与浮点数区别》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、定点数与浮点数区别最近做HDR时,经常要用NV提供的16位纹理,它的说明书16位能达到24位的精度,就很奇怪?一直搞不懂浮点数的精度怎么算的?今天认真看了一下IEEEfloatpoint的标准,终于明白是什么了1.什么是浮点数在计算机系统的发展过程中,曾经提出过多种方法表达实数。典型的比如相对于浮点数的定点数(FixedPointNumber)。在这种表达方式中,小数点固定的位于实数所有数字中间的某个位置。货币的表达就可以使用这种方式,比如99.00或者00.99可以用于表达具有四位精度(Precision),小数点后有两位的货币值。由于小数点位置固定,所以可以直接

2、用四位数值来表达相应的数值。SQL中的NUMBER数据类型就是利用定点数来定义的。还有一种提议的表达方式为有理数表达方式,即用两个整数的比值来表达实数。定点数表达法的缺点在于其形式过于僵硬,固定的小数点位置决定了固定位数的整数部分和小数部分,不利于同时表达特别大的数或者特别小的数。最终,绝大多数现代的计算机系统采纳了所谓的浮点数表达方式。这种表达方式利用科学计数法来表达实数,即用一个尾数(Mantissa),一个基数(Base),一个指数(Exponent)以及一个表示正负的符号来表达实数。比如123.45用十进制科学计数法可以表达为1.2345×102,其中1.2

3、345为尾数,10为基数,2为指数。浮点数利用指数达到了浮动小数点的效果,从而可以灵活地表达更大范围的实数。提示:尾数有时也称为有效数字(Significand)。尾数实际上是有效数字的非正式说法。同样的数值可以有多种浮点数表达方式,比如上面例子中的123.45可以表达为12.345×101,0.12345×103或者1.2345×102。因为这种多样性,有必要对其加以规范化以达到统一表达的目标。规范的(Normalized)浮点数表达方式具有如下形式:±d.dd.d×βe,(0≤diβ)其中d.dd.d即尾数,β为基数,e为指数。尾数中数字的个数称为精度,在本文中

4、用p来表示。每个数字d介于0和基数之间,包括0。小数点左侧的数字不为0。基于规范表达的浮点数对应的具体值可由下面的表达式计算而得:±(d0+d1β-1+.+dp-1β-(p-1))βe,(0≤diβ)对于十进制的浮点数,即基数β等于10的浮点数而言,上面的表达式非常容易理解,也很直白。计算机内部的数值表达是基于二进制的。从上面的表达式,我们可以知道,二进制数同样可以有小数点,也同样具有类似于十进制的表达方式。只是此时β等于2,而每个数字d只能在0和1之间取值。比如二进制数1001.101相当于1×23+0×22+0×21+1×20+1×2-1+0×2-2+1×2-3

5、,对应于十进制的9.625。其规范浮点数表达为1.001101×23。2.IEEE浮点数计算机中是用有限的连续字节保存浮点数的。保存这些浮点数当然必须有特定的格式,Java平台上的浮点数类型float和double采纳了IEEE754标准中所定义的单精度32位浮点数和双精度64位浮点数的格式。注意:Java平台还支持该标准定义的两种扩展格式,即float-extended-exponent和double-extended-exponent扩展格式。这里将不作介绍,有兴趣的读者可以参考相应的参考资料。在IEEE标准中,浮点数是将特定长度的连续字节的所有二进制位分割为特

6、定宽度的符号域,指数域和尾数域三个域,其中保存的值分别用于表示给定二进制浮点数中的符号,指数和尾数。这样,通过尾数和可以调节的指数(所以称为"浮点")就可以表达给定的数值了。具体的格式参见下面的图例:在上面的图例中,第一个域为符号域。其中0表示数值为正数,而1则表示负数。第二个域为指数域,对应于我们之前介绍的二进制科学计数法中的指数部分。其中单精度数为8位,双精度数为11位。以单精度数为例,8位的指数为可以表达0到255之间的255个指数值。但是,指数可以为正数,也可以为负数。为了处理负指数的情况,实际的指数值按要求需要加上一个偏差(Bias)值作为保存在指数域中的

7、值,单精度数的偏差值为127,而双精度数的偏差值为1023。比如,单精度的实际指数值0在指数域中将保存为127;而保存在指数域中的64则表示实际的指数值-63。偏差的引入使得对于单精度数,实际可以表达的指数值的范围就变成-127到128之间(包含两端)。我们不久还将看到,实际的指数值-127(保存为全0)以及+128(保存为全1)保留用作特殊值的处理。这样,实际可以表达的有效指数范围就在-127和127之间。在本文中,最小指数和最大指数分别用emin和emax来表达。图例中的第三个域为尾数域,其中单精度数为23位长,双精度数为52位长。除了我们将要讲到的某些特殊

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。