float point to fixed point

浮点数

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 | 

 

浮点转定点,再转会,比较下两次,精度丢失了一部分

 

 

 

 

    

 

posted @ 2020-08-04 21:34  00000000O  阅读(335)  评论(0编辑  收藏  举报