为什么四个字节的浮点类型比八个字节的整型取值范围要大

        首先,为了知道原因,我们需要知道这两种数据类型在算机当中的存储方式是怎样的

目录

一.数据类型

1.整型:

1.整型数据的字节大小

2.long的取值范围

2.浮点型

1、float类型数字在计算机中用4个字节(32位)存储。

2、格式

3、符号位

4、指数

5、底数

结论


一.数据类型

        知道数据类型分为引用类型和基本数据类型。在基本数据类型中有整型(byte, short, int, long),浮点型(float, double),字符型,还有布尔类型(boolean)

        其中整型long的长度为八个字节,而浮点类型float长度却是四个字节。但是为什么四个字节的浮点类型float比八个字节的整形浪取值范围要大呢?

        那么我们来看看它们两个在计算机当中的存储方式是怎样的吧:

1.整型:

1.整型数据的字节大小

        数据类型                                        字节大小 

         byte                                                  1                                                                  

         short                                                 2

         int                                                     4 

         long                                                  8 

2.long的取值范围

        我们知道,在计算机中一个字节储存8位的二进制的数字,并且整型当中最左边一位是符号位,0代表正数,1代表负数,其他的用来储存数字大小,拿byte类型举例,他的取值范围就是1111 1111(-128,也就是-2^7)------01111 1111(127,需要-1,也就是2^7),同理,我们可以得出long的取值范围是-2^63-----2^63.

2.浮点型

1、float类型数字在计算机中用4个字节(32位)存储。

遵循IEEE-754格式标准:
一个浮点数由3部分组成:符号位s(1位)和、指数e(8位)、底数m(23位)

2、格式

S:符号位
E:指数,十进制指数加上127后的值得二进制数据
M:底数

3、符号位

指底数的符号,可正可负。

4、指数

根据浮点数的存储标准(IEEE制定),float类型指数的起始数为127(二进制0111 1111),double类型指数的起始数为1023(二进制011

1111 1111),在此基础上加指数,得到的就是内存中指数的表示形式。

5、底数

实际是占用24bit的一个值,但是最高位始终为1,所以,最高位省去不存储,在存储中占23bit
科学计数法。

最后我们在将符号为负的情况也考虑进去,可知,float的真正取值范围是:

[-1.1… x 2128(-3.4028235E38),-1.1… x 2-127] ∪ [1.1… x 2-127,1.1… x 2128(3.4028235E38)]

结论

        由此得出,四个字节的浮点类型比八个字节的整型取值范围要大,原因就是数据的储存方式不同造成的

  • 11
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值