float和double型分别怎么存储

 我来答
听不清啊
高粉答主

2015-03-23 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

C/C++的浮点数据类型有float和double两种。  

类型float大小为4字节,即32位,内存中的存储方式如下: 符号位(1 bit)   指数(8 bit)   尾数(23 bit)  

类型double大小为8字节,即64位,内存布局如下: 符号位(1 bit)   指数(11 bit)   尾数(52 bit)   

       符号位决定浮点数的正负,0正1负。  

       指数和尾数均从浮点数的二进制科学计数形式中获取。 

       如,十进制浮点数2.5的二进制形式为10.1,转换为科学计数法形式为(1.01)*(10^1),由此可知指数为1,尾数(即科学计数法的小数部分)为01。  

       根据浮点数的存储标准(IEEE制定),float类型指数的起始数为127(二进制0111 1111),double类型指数的起始数为1023(二进制011 1111 1111),在此基础上加指数,得到的就是内存中指数的表示形式。尾数则直接填入,如果空间多余则以0补齐,如果空间不够则0舍1入。所以float和double类型分别表示的2.5如下(二进制): 

符号位   

指数   

尾数  

0   

1000 0000   

010 0000 0000 0000 0000 0000  


0   

100 0000 0000   

0100 0000 0000 0000 0000 0000 0000  0000 0000 0000 0000 0000 0000 

更多追问追答
追问
为什么指数部分是1000 0000而不是11111111
0舍1入具体什么意思
lost蓅苏
2015-03-23 · TA获得超过1003个赞
知道小有建树答主
回答量:1045
采纳率:0%
帮助的人:448万
展开全部
声明变量存储,如
float a=2.3f;
double b=2.3;
float赋值要加f
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式