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

上传人:白大夫 文档编号:3408095 上传时间:2019-08-22 格式:DOC 页数:2 大小:15KB
返回 下载 相关 举报
在C语言中,如何分配浮点数的存储方式?.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《在C语言中,如何分配浮点数的存储方式?.doc》由会员分享,可在线阅读,更多相关《在C语言中,如何分配浮点数的存储方式?.doc(2页珍藏版)》请在三一文库上搜索。

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

2、例)步骤一:符号位(占1个bit位)的数值很容易看出此数为正数,因此符号位为0。步骤二:指数位(占8个bit位)的数值第一步:先将十进制的2.25转换成二进制0100.01;第二步:将100.01用二进制的科学计数法表示为1.001;第三步:将第二步所得数值写成指数形式1.001*(2);第四步:将指数数值2+127=129,将129转化成二进制形式(1000 0001)写到指数部位。步骤三:尾数部分(占23个bit位)的数值将步骤二第二步中所得的数1.001,小数点后的三位数001写到指数部位,剩下的位用0补齐即可。所以单精度浮点数2.25在内存中的表示方式为:0 1000 0001 001

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1