c语言中浮点数的存储格式及其有效数字位数

c语言中浮点数的存储格式及其有效数字位数

ID:9212518

大小:154.10 KB

页数:5页

时间:2018-04-22

c语言中浮点数的存储格式及其有效数字位数_第1页
c语言中浮点数的存储格式及其有效数字位数_第2页
c语言中浮点数的存储格式及其有效数字位数_第3页
c语言中浮点数的存储格式及其有效数字位数_第4页
c语言中浮点数的存储格式及其有效数字位数_第5页
资源描述:

《c语言中浮点数的存储格式及其有效数字位数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、84计算机与数字工程第34卷"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""!C语言中浮点数的存储格式及其有效数字位数张宗杰张明亮(苏州科技学院电子与信息工程系苏州215011)摘要:总结了C语言中的单精度型(fioat)、双精度型(doubie)和长双精度型(iongdoubie)浮点数的存储格式,并用简洁的C程序给出了验证;对其表示的十进制数的有效数字位数,从相对误差的角度,给出了判定方法及结论。关键词:浮点数单精度

2、双精度长双精度阶码尾数有效数字位数中图分类号:TP31StorageFormatofABinaryFloating-PointNumberanditsBitsofDecimalSignificantDigitsZhangZongjieZhangMingliang(Dept.ofEiectronics&InformationEngineering,SuzhouCoiiegeofScienceandTechnoiogy,Suzhou215011)Abstract:Itdescribeshowfioatin

3、g-pointdat(afioat,doubie,iongdoubie)storedinmemory,therangeandprecisionofstoragefor-mats,andhowtovaiidateitinsimpieCprogram.Itdiscussesthenumberofdecimaisignificantdigitsfromtheviewpointofreiativeerror.Keywords:fioating-pointnumber,fioat,doubie,iongdoub

4、ie,exponent,mantissa,significantdigitsClassnumber:TP31其中S表示符号,SI1表示负数,SI0表示正0前言数。实数在计算机中一般以二进制浮点数的形式M为二进制数的系数,规范化二进制数的M存放。可是,其具体的存储格式等在有关的书籍中形式为1.b1b2⋯⋯bn。很难查到,多是泛泛地给出不同类型的浮点数(单整数E为二进制数的指数。精度型、双精度型、长双精度型)的十进制数的数值2IEEE754-1985标准简介范围,及其大致能提供的有效数字位数。而用计算机进

5、行数值运算时,经常需要关注有效数字的位IEEE754-1985标准规定了fioa(t单精度型)、数,即数据的精确度问题。为此查阅了美国电气电doubi(e双精度型)浮点数R的二进制存储的编码子工程师学会(IEEE)的IEEE754-1985标准,该格式如下:标准给出了有关浮点数在计算机中的存储格式(多最高位最低位数计算机语言中浮点数的实现均参照或遵循此标符号S阶码E尾数M准)。本文在此基础上通过C程序验证等总结了C对于fioat型,IEEE754-1985标准规定用32位二语言中浮点数的实现机制、准确

6、的表示范围等;并进制编码表示,具体如下:进一步讨论了浮点数的十进制数有效数字位数;论·最高位31位,保存符号位S,“0”表示正数,证了二进制数的位数与十进制数有效数字位数的“1”表示负数。关系。·30位~23位,共8位,移码方式(指数值加上偏移量127)保存指数部分,称为阶码。1有关科学记数法·22位~0位,共23位,保存系数部分,称为十进制的实数R的二进制数的科学记数法可尾数,对于规范化二进制数,整数位的前导“1”不保表示为:RI(-1)SXMX2E存(隐含),直接保存小数部分b1b2⋯b23。!收

7、到本文时间:2005年4月8日第34卷(2006)第1期计算机与数字工程85#################################################################并有以下规定:3浮点数的验证·若1!E!254,R=(-1)SX(1+0.M)XE-127此时R为规范化数;通过直接输入十进制实数的方法,来验证浮点2·若E=0且M=0,R=0;数在计算机中的存储格式将非常麻烦和不准确,如·若E=0且M"0,R=(-1)S-126能直接输入和查看十进制数对应的二进制

8、编码将X(0.M)X2此时R为非规范化数;非常方便和有效。利用C语言的union(共用体/联·若E=255且M"0,非数值的编码组合(用合体)类型,就可以很容易地实现。例如以下的公NAN表示);用体定义:·若E=255且M=0,R溢出(用+INF、-INFunion{fIoatr;//长整型与单精度型长度都是分别表示正、负无穷大);32bit对于doubIe型,IEEE754-1985标准规定用64unsignedIongn;}X;位表示,具体如下:可用

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

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

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