JDK之Float源码解析

概述Java的Float类主要的作用就是对基本类型float进行封装,提供了一些处理float类型的方法,比如float到String类型的转换方法或String类型到float类型的转换方法,当然也包含与其他类型之间的转换方法 java float类型用IEEE754标准规定;float占用4个字节,包括:1bit(符号位):0表示正数,1表示负数;8bits(指数位)...
摘要由CSDN通过智能技术生成

概述

Java的Float类主要的作用就是对基本类型float进行封装,提供了一些处理float类型的方法,比如float到String类型的转换方法或String类型到float类型的转换方法,当然也包含与其他类型之间的转换方法

java float类型用IEEE754标准规定;

float占用4个字节,包括:

  • 1bit(符号位):0表示正数,1表示负数;
  • 8bits(指数位):float的偏移量为2^8 - 1,double的偏移量为2^11 - 1;
  • 23bits(尾数位):实际尾数部分中的小数点后的数值,规约浮点数使用标准的二进制科学计数法表示,其尾数范围在 [1,2),非规约浮点数的尾数部分范围在(0,1)
    这里写图片描述

示例:

8.25 的 float 表示
整数8的二进制:1000
小数0.25的二进制:.01
8.25整体的二进制:1000.01 → 1.00001 * 2^3
小数点左移 3 位,所以指数部分(3 + 127) = 130,二进制是 10000010
尾数:去掉小数点前面的1,为 00001,补充到 23 位,000 0100 0000 0000 0000 0000
最终 8.25 在内存中存储的二进制是:0100 0001 0000 0100 0000 0000 0000 0000
9.5 的 float 表示
9.5的二进制:1001.1 -> 1.0011 * 2^3
指数位是 (3 + 127)=130,二进制 10000010
尾数是 0011 000000 0000000000 000
最终 9.5 在内存中存储的二进制是:010000010 0011 000000 0000000000 000,和程序打印出来的一致。

类继承关系:

public final class Float extends Number implements Comparable<Float> {
   
    public static final float POSITIVE_INFINITY = 1.0f / 0.0f; // 正无穷大
    public static final float NEGATIVE_INFINITY = -1.0f / 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值