王道考研ppt总结:
二、个人理解
浮点数解决的是定点数的位数局限,导致表示范围有限的问题
阶码:由阶符和数值部分组成,阶符为+,小数点向左移动,否则向右移动;数值部分,是底数的几次幂
尾数:有数符,有数值部分,数符表示整个数据的正负数,数值部分表示数据的精度
因此:
阶码反映数据的大小(小数点的实际位置),尾数反映数据的精度
阶码E的位数决定了这个数据所能表示的最大和最小范围
尾数的位数决定了这个数据所能表示的精度的范围,尾数越多精度越高,反之越低
二进制的浮点数表示:
阶码:常用补码或者移码表示的定点整数(也就是说,要将之翻译成为真值才能确定小数点移动的多少)
尾数:原码或者补码表示的定点小数
尾数的规格化:
原因是,浮点表示定点小数时,尾数的最高位如果是0,那么这个0毫无意义,对这个数据的精度没有意义
所以,为了增加数据的精度,可以把尾数向左移动,让更小的位权的数据得以存储,这样会保留更高的数据精度
但是,与此同时,尾数向左移动了,需要让阶码减小对应的大小,用以抵消
这种尾数向左移动的方式,让精度更加准确的方式叫做左规
右规:
当两个浮点定点小数进行加法时,有可能会出现溢出
溢出时,双符号位会出现不同,更高位的符号位是正确的符号位
所以,为了挽回溢出,将溢出的结果,向右移动一位,补更高位的符号位
对应的阶码+1
总之,规格化要做的是确保数据的精度更高
如果是尾数的最高位无效,那么左移;
如果是尾数的溢出,那么右移。
当用原码表示尾数时:
正数,表示的最大值为0.11...11,最小值为0.10...0
负数,表示的最大值为1.10...00,最小值为1.11...1
原码表示尾数:尾数最高有效位必须是1
补码表示尾数:尾数最高位必须和尾数符号位相反