在C语言中,如何分配浮点数的存储方式?.doc

在C语言中,如何分配浮点数的存储方式?.doc

ID:27902699

大小:122.50 KB

页数:4页

时间:2018-12-06

在C语言中,如何分配浮点数的存储方式?.doc_第1页
在C语言中,如何分配浮点数的存储方式?.doc_第2页
在C语言中,如何分配浮点数的存储方式?.doc_第3页
在C语言中,如何分配浮点数的存储方式?.doc_第4页
资源描述:

《在C语言中,如何分配浮点数的存储方式?.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、在C语言中,如何分配浮点数的存储方式?  C语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量floatf=2.25f的时候,是如何分配内存的呢?    float在内存中的存储方式如下图所示:    double在内存中的存储方式如下图所示:    无论是单精度还是双精度在存储中都分为三个部分:  1.符号位(Sign):0代表正,1代表为负  2.指数位(Exponent):用于存储科学计数法中的指数数据,并且采用移位

2、存储  3.尾数部分(Mantissa):尾数部分  首先来看float类型(以2.25为例)  步骤一:符号位(占1个bit位)的数值  很容易看出此数为正数,因此符号位为0。  步骤二:指数位(占8个bit位)的数值  第一步:先将十进制的2.25转换成二进制0100.01;  第二步:将100.01用二进制的科学计数法表示为1.001;  第三步:将第二步所得数值写成指数形式1.001*(2);  第四步:将指数数值2+127=129,将129转化成二进制形式(10000001)写到指数部位。  步骤三:尾数部分(占23个bit位)

3、的数值  将步骤二第二步中所得的数1.001,小数点后的三位数001写到指数部位,剩下的位用0补齐即可。  所以单精度浮点数2.25在内存中的表示方式为:  01000000100100000000000000000000  再来看double类型(还是以2.25为例)  步骤一:符号位(占1个bit位)的数值  很容易看出此数为正数,因此符号位为0。  步骤二:指数位(占11个bit位)的数值  第一步:先将十进制的2.25转换成二进制0100.01;  第二步:将100.01用二进制的科学计数法表示为1.001;  第三步:将第二步所得

4、数值写成指数形式1.001*(2);  第四步:将指数数值2+1023=1025,将129转化成二进制形式(10000000001)写到指数部位。  步骤三:尾数部分(占52个bit位)的数值  将步骤二第二步中所得的数1.001,小数点后的三位数001写到指数部位,剩下的位用0补齐即可。  所以双精度浮点数2.25在内存中的表示方式为:  0100000000010010000000000000000000000000000000000000000000000000

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

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

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