本文收集整理关于为什么要对浮点数进行规格化的相关议题,使用内容导航快速到达。
内容导航:
我不知道你这个是什么标准啊,看这个题的意思好像是移码+尾数
比如-0.101101*2^-3
阶码(移码):-3原码是1011(负号为1),补码:1101(除符号位按位取反加1),移码:0101(与补码符号位相反)
尾码:符号位为1,尾数为0.101101小数点后第一位非零,所以为标准化形式
尾码为:1 1011010
所以这个答案为:移码+尾码
0101 1 1011010
至于为什么在后面加0,就像0.12。变成3位小数应该是0.120。而不是0.012啊
不知道是不是这个意思,你借鉴着看吧
浮点数比定点数的表述范围宽,有效精度高,更适合于科学计算与工程计算。浮点运算可分为2类:非规格化和规格化浮点运算。非规格化浮点运算,不要求操作数是规格化数,对运算结果也不要求规格化处理。而规格化浮点运算只能对规格化的浮点数进行操作,并且要求对运算结果加以规格化处理。由于规格化浮点数具有惟一的表示形式,而且在计算机中尾数能获得最大的有效数字,所以在一般的计算机中选用规格化浮点运算。在浮点运算中,阶码和尾数是分别进行运算的,并且都是定点数(阶码为定点整数,尾数为定点小数)。因此,可以说,浮点运算器是定点运算器的扩充和强化。一般浮点运算器都至少具有2个定点数逻辑运算单元,一个用于阶码的比较和运算,另一个用于尾数的运算。阶码运算器用来求阶差,修改阶码等操作,一般只进行加减运算。而尾数部件不但有加法器用以求和,还应有左移和右移线路,以实现对尾数的操作。 规格化处理:尾数进行运算的结果必须变成规格化的浮点数,对于双符号位的补码尾数来说,就必须是 001×××…×× 或110×××…××的形式 若不符合上述形式要进行左规或右规处理。
规格化:使尾数数值部分最高位为1。
当尾数不为0时,其绝对值应大于或等于0.5(即小数点后第一位必为“1”)。若不符合,应通过修改阶码,并左右移动尾数实现。可节省存储空间,避免有效数字丢失。
不是一两句就能说明白的,要想了解浮点数,先看一下754的标准。有本书推荐一下:浮点计算编程原理、实现与应用 出版社: 机械工业出版社; 第1版 (2008