在c++中单精度float类型与双精度double类型的问题
有句话不太明白:【"单精度用float表示,在计算机中使用4位字节(32位bit)来表示,具有7位有效数字"】既然是用4位字节表示float,那么不是应该是4位有效数吗,...
有句话不太明白:
【"单精度用float表示,在计算机中使用4位字节(32位bit)来表示,具有7位有效数字"】
既然是用4位字节表示float,那么不是应该是4位有效数吗,一个数字不是占用一个字节吗 ?
1.124545 这个数占几个字节呢?
1124545又占多少字节? 展开
【"单精度用float表示,在计算机中使用4位字节(32位bit)来表示,具有7位有效数字"】
既然是用4位字节表示float,那么不是应该是4位有效数吗,一个数字不是占用一个字节吗 ?
1.124545 这个数占几个字节呢?
1124545又占多少字节? 展开
4个回答
展开全部
float占4个字节(32个bit位),这句话的意思是一个单精度的浮点数在内存当中占用了32个bit位,按照浮点数的表示标准,最高位表示符号,这32位一部分用来表示阶码,一部分用来表示小数部分。按照这个表示方法转化成10进制之后,它能表示的最高精度是7位有效数字。建议楼主先看看这个
http://wenku.baidu.com/view/4fa68320aaea998fcc220e79.html
对于你的补充问题,如果你用float类型来存这个数,那它就占4个字节,如果你用double类型来存这个数,它就占8个字节。
http://wenku.baidu.com/view/4fa68320aaea998fcc220e79.html
对于你的补充问题,如果你用float类型来存这个数,那它就占4个字节,如果你用double类型来存这个数,它就占8个字节。
展开全部
float类型存储的时候1个bit是符号位,8个bit是指数位,剩下的23个bit是有效数字位,2的23次方你算一下是多少?
我看过一老外写的书,说是现在内存很大很便宜啦,尽量用double,不用节省存储空间,大多数情况下用double比用float速度快
我看过一老外写的书,说是现在内存很大很便宜啦,尽量用double,不用节省存储空间,大多数情况下用double比用float速度快
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
float n1=1.124545
float n2=1124545
float n3=0
他们在内存里都是4Byte 32位。
只不过
float n1=1.124545123456767;
这样写是没有用的。还是 n1=1.124545
精度不够了。
文章这里的7位有效数字指的是十进制的人类世界数字。
float n2=1124545
float n3=0
他们在内存里都是4Byte 32位。
只不过
float n1=1.124545123456767;
这样写是没有用的。还是 n1=1.124545
精度不够了。
文章这里的7位有效数字指的是十进制的人类世界数字。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
4个字节(byte),一个字节是8位(bit),计算机中数据都是以二进制的形式存在,比如11100011就是8位(bit),占1个字节(byte).float和double类型的数据,存储方式跟int是不一样的。比如
float a=3.14159;a在内存中实际上表示为0.314159乘以10的1次方,而分配给a的存储单元就分为两部分,一部分存0.314159,一部分存指数1,而且也都是转化为2进制来存,所以说,有效数字,不是你想的那样。明白了吗? 所需要的存储空间,由你声明的数据的数据类型来决定。
float a=3.14159;a在内存中实际上表示为0.314159乘以10的1次方,而分配给a的存储单元就分为两部分,一部分存0.314159,一部分存指数1,而且也都是转化为2进制来存,所以说,有效数字,不是你想的那样。明白了吗? 所需要的存储空间,由你声明的数据的数据类型来决定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询