long与float的取值范围谁大谁小

进行混合运算的时候,byte、short、char不会相互转换,都会自动提升为int类型,其他类型进行混合运算是小数据类型提升为大数据类型。

byte、short、char-------int-------long-----float------double

long:8个字节

float:4个字节

为什么float比long的范围大呢?用一段代码看一下

通过代码可以看出,long类型的变量值可以赋值给float类型的变量,而float类型的变量值不可以直接赋值给long类型的变量,需要进行强制类型转换。

原因:它们底层的存储结构不同

float占4个字节,32个二进制位

1位代表的是符号位

8位代表指数位,8位最小是00000000,最大是11111111,范围也就是0~255,IEEE 754规范(0代表0,255代表无穷大,剩下的1~254,规定每个指数减去127,指数的范围就变成-126~127,而long的指数范围是0~63结论:long的取值范围比float小

23位代表的是尾数位(小数位)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值