关于java中整型和浮点型互转加后缀的问题

问题:将一个整型的常量(字面值为int)赋给一个byte或者short类型的变量,只要不超过byte或short取值范围,就可以通过编译,但是将一个浮点型的常量(字面值的double)赋给一个float类型的变量,即使不超过float的取值范围也会编译错误

1:在java中默认整型为int类型,默认浮点类型为double类型,例如byte a = 1; 虽然默认1是int类型,但是会隐含默认转换,只要不超范围就不会有错。

2:整型的高低位转换仅仅是字面量才不会编译错误,如果使用变量,编译器是无法识别。

3:整型的高位向低位转换就是暴力的把前面的位干掉,例如 long转int就是把 long的高32位干掉,但浮点类型标识的是精度小数,所以没有办法按照去截取头部的位,而double在转float时,会开启8个字节来存放,必须加上F标识创建4个字节的空间才能赋值。

转载于:https://www.cnblogs.com/raintjr/p/9283178.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值