恭喜,你发布的帖子
发布于 2018-10-21 23:50:23
3楼
实际上浮点数加是进行的2进制的加,先把小数以小数点位位置为分界,分别转换成二进制,小数点前的转换
按除2取余反向排序,小数后是乘2取整顺序排列。如:(173.8125)10=(10101101.1101)2
(0.004)=(.0001100011000110001100011000)2 因为循环可以无限写下去 32位浮点速度小数位是23位,计算机就取23位。 实际上无限循环下去才能保证是真正的0.004,这就是这个二进制数只能说是个接近值。
浮点数的真正意义是说小数点可以浮动是按二进制来讲的 拿(173.8125)10=(10101101.1101)2来讲
可以写成(1010110.11101*)2^2, (101011.011101*)2^3 , (10101.1011101*)2^4 ----------这里的2 3 4就是浮点数的指数,二进制有一个约定,及小数点前面一位必须为 1且把它省去,相当于用23来表示24位数。
另外浮点的加法是 先保证指数相同小数部分进行相加,这时候是浮点数的指数开始发生变化,应为要保证指数同,同时小数点位置也发生变化。这就有可能把一部分数据全部移除,相当于与23个零相加等于加一个零。
请填写推广理由:
分享
只看
楼主