浮点表示16进制数时,如何区分16进制f,d与后缀f,d?
float f3=0xff; System.out.println("f3="+f3); double d4=0xdd; System.out.println("d4="+d4);
f3为什么输出的是255.0,不是15.0,
d4为什么输出的是221.0,不是13.0,
难道16进制下,float不需要后缀f?
12
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小蓝
2023-06-12 10:08:13
同学你好~
1.16进制数据中,需要先按照表达式将数据表达为二进制,然后再转化为10进制之后进行输出,例如:十六进制的0xFF就是二进制的11111111,换算成十进制就是255。0xDD也是同理。
2.实际上并不是使用16进制不需要加f,而是当前表达式所表达的数据没有超过int的数据范围,所以不需要加f。在Java中,存储的整数默认使用int,而int是可以自动类型提升为float的,所以当使用float存储整数的时候,是先将整数按照int进行存储,然后转化为float。但是float的数据范围远大于int,当超出int范围的时候,就需要添加标记f或者F,使得存储的时候跳过“将整数按照int进行存储”的过程,直接按照float进行存储。
所以会发现,如果整数在int范围的时候,加不加f都是可以的,但是超出了,不加就会报错。
祝学习愉快~
Java工程师 2024版
- 参与学习 2020 人
- 提交作业 1249 份
- 解答问题 1202 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星