float 组成结构: 1 bit 符号位 + 8 bit 指数位 + 23 bit 尾数
指数位使用补码,(-128 ~ 127)
尾数位使用科学计数法: 默认一位为1,不计算在 23 位范围之内, 2^23 = 8388608 2^24 = 16777216
如果 一个数为16777217,用float 表示则会出现精度损失,所以 float 的精度保障7位,当小于16777216 ,可以保障8位
学习float的时候,看到了补码,顺带复习一下:
- 原码:正数是其二进制本身;负数是符号位为1,数值部分取X绝对值的二进制。
- 反码:正数的反码和原码相同;负数是符号位为1,其它位是原码取反。
- 补码:正数的补码和原码,反码相同;负数是符号位为1,其它位是原码取反,未位加1。
- 移码:将符号位取反的补码(不区分正负)