为什么四个字节的float比八个字节的long表示范围大

 

①、float比long类型的存储范围大

long:8个字节 64bit

float:4个字节 32bit

float和long都是用二进制来进行存储的

但是小数会先转成二进制,然后进行处理存储。

float的存储是将4个字节32位划分为3个部分来分别存储正负号,小数部分和指数部分的:

符号位(1位:S):用来存储正负符号,0表示正数,1表示负数。

底数部分(8位:E):使用二进制数来确定小数的精度。
指数部分(23位:M):占用8bit的二进制数,来确定数的范围。

但是指数可正可负,所以,IEEE规定,此处算出的次方必须减去127才是真正的指数。所以,float类型的指数可从-126~+127(-127和128作为特殊规定)。

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

IEEE754标准:

vlue = (-1)^S * M * 2^E-127

指数位最大值:8个1   11111111  255

根据IEEE754标准计算得:  vlue = (-1)^S * M * 2^255-127   为   vlue = (-1)^S * M * 2^128

那么float表示的范围为  -2^127 ~ 2^127

换算成10进制为:-3.410^38 ~ +3.410^38;

long在内存中占用8个字节64位,符号位占1位,数值表示范围为-2^63~2^63-1

显然,float的存储范围比long的存储范围要大得多;

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Keil 5中,float类型占用4个字节。 在计算机中,float是一种浮点数数据类型,用于表示带有小数部分的实数。它通常占用4个字节,也就是32位,其中1位用于表示符号位,8位用于表示指数,剩下的23位用于表示尾数。 与其他数据类型相比,float类型的储空间较大,这是因为它需要保留足够的位数来表示带有小数部分的实数。相对应地,整数类型只需要用较少的位数来储整数值。 使用float类型时需要注意,它具有一定的精度限制,尤其是在涉及到精确计算或比较大小时。由于浮点数在内中的储方式,会出现一定的舍入误差。因此,在对浮点数进行计算或比较时,应尽量避免直接比较,而是使用一些特定的精度判定方法,如设置一个小的误差范围进行比较。 总之,在Keil 5中,float类型占用4个字节,适用于需要表示带有小数部分的实数的情况。 ### 回答2: Keil 5中的float类型通常占用4个字节。在32位的处理器架构中,float类型按照IEEE 754标准储,使用32位(4字节)的内空间来表示浮点数。这32位的空间分为3个部分:1位用于表示符号(正负号),8位用于表示指数,23位用于表示有效数字。其中,符号位决定了浮点数的正负性,指数位用于指定小数点的位置,有效数字位用于储实际的数字。通过这种方式,float类型可以表示一定范围内的小数值,例如正负百万分之一的小数。 需要注意的是,对于某些特殊的处理器架构或编译器设置,float类型可能占用的字节数会有所不同。在一些嵌入式系统中,为了节省内和提高运算效率,可能会使用其他的浮点数表示方法,如定点数表示法,从而使float类型所占的字节数减少。因此,在使用Keil 5进行开发时,可以根据具体的处理器架构和编译器设置来确定float类型所占用的字节数。 ### 回答3: 在Keil 5中,float类型占用4个字节。现代计算机中,float类型通常是单精度浮点数,它用32位(4个字节)来表示。这32位中,1位用来表示符号位,8位用来表示指数部分,剩余的23位用来表示尾数部分。因此,float类型在Keil 5中占用4个字节。 对于单精度浮点数,它的数值范围大约为1.2E-38到3.4E38,而且可以表示的有效位数(即精度)大约为6到7位。这使得float类型非常适合于处理需要较高精度的浮点运算,比如科学计算、数据分析等领域。 需要注意的是,float类型的精度相对于双精度浮点数(double类型)来说较低。如果需要更高的精度,可以考虑使用double类型,它通常占用8个字节。另外,在Keil 5中,还提供了其他类型,比如long double,它通常占用10个字节或更多,用于需要更高精度的特殊应用场景。 综上所述,在Keil 5中,float类型占用4个字节,并且适用于一般的浮点运算需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值