8.设浮点数字长为32位,欲表示士6万间的十进制 数,在保证数的最大精度条件下,除阶符、数符各取 位外,阶码和尾数各取几位?按这样分配,该浮点 数溢出的条件是什么? 解:若要保证数的最大精度,应取阶的基=2 若要表示±6万间的十进制数,由于32768(215) 6万<65536(216),则:阶码除阶符外还应取5位 (向上取2的幂) 故:尾数位数=32-1-1-5=25位 按此格式,该浮点数上溢的条件为:阶码≥32 该浮点数格式如下: 1 5 25 阶符阶值数符尾数
8. 设浮点数字长为 设浮点数字长为32位,欲表示±6万间的十进制 数,在保证数的最大精度条件下,除阶符、数符各取 数,在保证数的最大精度条件下,除阶符、数符各取 一位外,阶码和尾数各取几位?按这样分配,该浮点 一位外,阶码和尾数各取几位?按这样分配,该浮点 数溢出的条件是什么? 数溢出的条件是什么? 解:若要保证数的最大精度,应取 解:若要保证数的最大精度,应取阶的基=2。 若要表示±6万间的十进制数,由于 万间的十进制数,由于32768(215) < 6万 <65536(216),则:阶码除阶符外还应取 ),则:阶码除阶符外还应取5位 (向上取2的幂)。 故:尾数位数=32-1-1-5=25位 按此格式,该浮点数上溢的条件为: 按此格式,该浮点数上溢的条件为:阶码 ≥ 32 该浮点数格式如下: 该浮点数格式如下: 1 5 1 5 1 2 1 25 阶符 阶 值 数符 尾 数
9什么是机器零?若要求全0表示机器零, 第浮点数的阶码和尾数应采取什么机器数形 式 解:机器零指机器数所表示的零的形 运式,它与真值零的区别是:机器零在数轴上 算表示为“0点及其附近的一段区域,即在计算 法机中小到机器数的精度达不到的数均视为“机 器零”,而真零对应数轴上的一点(点) 运|若要求用“全0表示浮点机器零,则浮点数的 算阶码应用移码、尾数用补码表示(此时阶码 器|为最小阶、尾数为零,而移码的最小码值正 好为“0”,补码的零的形式也为“0”,拼起来 正好为一串0的形式)
9. 什么是机器零?若要求全 0表示机器零, 浮点数的阶码和尾数应采取什么机器数形 浮点数的阶码和尾数应采取什么机器数形 式? 解:机器零指机器数所表示的零的形 解:机器零指机器数所表示的零的形 式,它与真值零的 式,它与真值零的区别是:机器零在数轴上 是:机器零在数轴上 表示为 “ 0 ”点及其附近的一段 点及其附近的一段区域,即在计算 区域,即在计算 机中小到机器数的精度达不到的数均视为 机中小到机器数的精度达不到的数均视为 “ 机 器零 ”,而真零对应数轴上的一点( ,而真零对应数轴上的一点( 0 点)。 若要求用 “ 全 0 ”表示浮点机器零,则浮点数的 表示浮点机器零,则浮点数的 阶码应用移码、尾数用补码表示(此时阶码 阶码应用移码、尾数用补码表示(此时阶码 为最小阶、尾数为零,而移码的最小码值正 为最小阶、尾数为零,而移码的最小码值正 好为 “ 0 ”,补码的零的形式也为 ,补码的零的形式也为 “ 0 ”,拼起来 正好为一串 0的形式)
10.设机器数字长为8位(包括一位符号 翁位),对下列各机器数进行算术左移一位、 两位,算术右移一位、两位,讨论结果是否 章正确。 x1l原=0.0011010; 1.1101000 2原一 法 x3l原=1.001100 y1l补=0.1010100 y2l补=11101000 y3l补=1.0011001; 器 反 1.0101111 z2l反=11101000 z3l反=1.00100
10. 设机器数字长为 设机器数字长为 8 位(包括一位符号 (包括一位符号 位),对下列各机器数进行算术 位),对下列各机器数进行算术左移一位、 两位 ,算术右移一位 、两位,讨论结果是否 ,讨论结果是否 正确。 [x 1 ] 原=0.001 1010 =0.001 1010 ; [x 2 ] 原=1.110 1000 =1.110 1000 ; [x 3 ] 原=1.001 1001 =1.001 1001 ; [y 1 ] 补=0.101 0100 =0.101 0100 ; [y 2 ] 补=1.110 1000 =1.110 1000 ; [y 3 ] 补=1.001 1001 =1.001 1001 ; [z 1 ] 反=1.010 1111 =1.010 1111 ; [z 2 ] 反=1.110 1000 =1.110 1000 ; [z 3 ] 反=1.001 1001 =1.001 1001
解:算术左移一位: 第110100确 x2l原-1101000溢出(丢1)出错 章|x3l原=1.0110010正确 运|y=0.010100溢出(丢1)出错 ly2l=1.1010000正确 法|补=1.011000溢出(丢0)出错 和Zl反=11011:溢出(丢0)出错 运|z2反=1.1010001;正确 器l3反=1.011001;1溢出(丢0)出错 算术左移两位: x1l原=0.10100确 x2l原=1.010000溢出(丢11)出错 x3l原=1.1100100;正确
解:算术左移一位 : [x 1 ] 原=0.011 0100 =0.011 0100;正确 [x 2 ] 原=1.101 0000 =1.101 0000;溢出(丢 1)出错 [x 3 ] 原=1. 011 0010 =1. 011 0010;正确 [y 1 ] 补=0. 010 1000 =0. 010 1000;溢出(丢 1)出错 [y 2 ] 补=1.101 0000 =1.101 0000;正确 [y 3 ] 补=1.011 0010 =1.011 0010;溢出(丢 0)出错 [z 1 ] 反=1. 101 1111 =1. 101 1111;溢出(丢 0)出错 [z 2 ] 反=1. 101 0001 =1. 101 0001;正确 [z 3 ] 反=1.011 0011 =1.011 0011;溢出(丢 0)出错 算术左移两位 : [x 1 ] 原=0.110 1000 =0.110 1000;正确 [x 2 ] 原=1.010 0000 =1.010 0000;溢出(丢11)出错 [x 3 ] 原=1. 110 0100 =1. 110 0100;正确
算术左移两位: 第|y0.101000出(丢10)出错 ly2l补=1.010000正确 章3=11000溢出(丢00)出错 算=1.011;溢出(丢0)出错 z2l反=1.0100011;正确 法|3l反=111011溢出(丢00)出错 算术右移一位: x1l原=0.000101;正确 算1x2原=1.0110100;正确 器 x3l原=1.000100)丢1,产生误差 Iyl=0.0101010;正确 ly2l=1110100;正确 ly3l补=1.101000);丢1,产生误差
算术左移两位: 算术左移两位: [y 1 ] 补=0. 101 0000 =0. 101 0000;溢出(丢10)出错 [y 2 ] 补=1.010 0000 =1.010 0000;正确 [y 3 ] 补=1.110 0100 =1.110 0100;溢出(丢00)出错 [z 1 ] 反=1. 011 1111 =1. 011 1111;溢出(丢01)出错 [z 2 ] 反=1. 010 0011 =1. 010 0011;正确 [z 3 ] 反=1.110 0111 =1.110 0111;溢出(丢00)出错 算术右移一位: 算术右移一位: [x 1 ] 原=0.000 1101 =0.000 1101;正确 [x 2 ] 原=1.011 0100 =1.011 0100;正确 [x 3 ] 原=1.000 1100(1) =1.000 1100(1);丢 1,产生误差 [y 1 ] 补=0.010 1010 =0.010 1010;正确 [y 2 ] 补=1.111 0100 =1.111 0100;正确 [y 3 ] 补=1.100 1100(1) =1.100 1100(1);丢 1,产生误差