内容发布更新时间 : 2025/4/2 15:05:51星期一 下面是文章的全部内容请认真阅读。
则负数表示范围为:-1?231 —— -2-1?2-32
最大正数=0,11 111;0.111 111 111,即 (1-2-9)?231 最小正数=1,00 000;0.100 000 000,即 2-1?2-32 则正数表示范围为:2-1?2-32 ——(1-2-9)?231
17. 设机器数字长为8位(包括一位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。
[x1]原=0.001 1010;[y1]补=0.101 0100;[z1]反=1.010 1111; [x2]原=1.110 1000;[y2]补=1.110 1000;[z2]反=1.110 1000; [x3]原=1.001 1001;[y3]补=1.001 1001;[z3]反=1.001 1001。 解:算术左移一位:
[x1]原=0.011 0100;正确
[x2]原=1.101 0000;溢出(丢1)出错 [x3]原=1.011 0010;正确
[y1]补=0.010 1000;溢出(丢1)出错 [y2]补=1.101 0000;正确
[y3]补=1.011 0010;溢出(丢0)出错 [z1]反=1.101 1111;溢出(丢0)出错 [z2]反=1.101 0001;正确
[z3]反=1.011 0011;溢出(丢0)出错 算术左移两位:
[x1]原=0.110 1000;正确
[x2]原=1.010 0000;溢出(丢11)出错 [x3]原=1.110 0100;正确
[y1]补=0.101 0000;溢出(丢10)出错 [y2]补=1.010 0000;正确
[y3]补=1.110 0100;溢出(丢00)出错 [z1]反=1.011 1111;溢出(丢01)出错 [z2]反=1.010 0011;正确
[z3]反=1.110 0111;溢出(丢00)出错
算术右移一位:
[x1]原=0.000 1101;正确 [x2]原=1.011 0100;正确
[x3]原=1.000 1100(1);丢1,产生误差 [y1]补=0.010 1010;正确 [y2]补=1.111 0100;正确
[y3]补=1.100 1100(1);丢1,产生误差 [z1]反=1.101 0111;正确
[z2]反=1.111 0100(0);丢0,产生误差 [z3]反=1.100 1100;正确 算术右移两位:
[x1]原=0.000 0110(10);产生误差 [x2]原=1.001 1010;正确 [x3]原=1.000 0110(01);产生误差 [y1]补=0.001 0101;正确 [y2]补=1.111 1010;正确 [y3]补=1.110 0110(01);产生误差 [z1]反=1.110 1011;正确 [z2]反=1.111 1010(00);产生误差 [z3]反=1.110 0110(01);产生误差
18. 试比较逻辑移位和算术移位。 解:逻辑移位和算术移位的区别:
逻辑移位是对逻辑数或无符号数进行的移位,其特点是不论左移还是右移,空出位均补0,移位时不考虑符号位。 算术移位是对带符号数进行的移位操作,其关键规则是移位时符号位保持不变,空出位的补入值与数的正负、移位方向、采用的码制等有关。补码或反码右移时具有符号延伸特性。左移时可能产生溢出错误,右移时可能丢失精度。
19. 设机器数字长为8位(含1位符号位),用补码运算规则计算
下列各题。
(1)A=9/64, B=-13/32,求A+B。 (2)A=19/32,B=-17/128,求A-B。