float占4字节,long占8字节,第一反应是long的取值范围更大。

![]()
不然,因为二者存储数的方式不同,float采用科学计数法存储,long直接用二进制形式存储数。
long占8字节,64位中最高一位是符号位,表示的最大数是2^63 - 1。
float占4字节,32位分为3个字段:
- 符号位 (Sign, 1位):最高位,表示正负。
- 指数位 (Exponent, 8位):用来存储 2 的多少次方,决定了数的范围。
- 尾数位 (Mantissa, 23位):用来存储具体的有效数值,决定了数的精度。
float类型的最大值计算需查询 IEEE 754 标准。
![image]()
