浮点数
5.23
表示为二进制
小数位这里只计算5位,不再继续算了
0.23 * 2 = 0.46 0 余0.46
0.46 * 2 = 0.92 0 余0.92
0.92 * 2 = 1.84 1 余0.84
0.84 * 2 = 1.68 1 余0.68
0.68 * 2 = 1.36 1 余0.36
101. 001110进一步表示为1.01001110 * 2^2
浮点数存储方式
符号位1 | 指数127+2 | 01001110 00000000000000000 |
约定定点数取8位,整数6,小数2
原始float 101. 001110
截取整数2,小数2共8位 #000101. 00#1110
用#截取浮点数二进制的过程就是转换定点数的过程
得到10100这个数转成十进制就是要转的定点数 20
20这个定点数再转回浮点数
注意之前约定了定点数整数是6,小数是2,小数点位置就确定了
原始int 20 二进制10100
变化为101.00
转换成float
符号位1 | 指数 127+2| 0100 00000000000000000000 |
浮点转定点,再转会,比较下两次,精度丢失了一部分