计算题

已知 x=-0. 1110, y=-0. 1101, 用原码一位乘法计算 x×y。

【正确答案】

因为 x=-0. 1110, 所以[x] =1. 1110, | x| =0. 1110, x0 =1
又因为 y=-0. 1101, 所以[y] =1. 1101, | y| =0. 1101, y0 =1
按原码一位乘法的运算规则, x×y 的数值部分计算如下:
表 2-3

部分积 乘数 说明
   0.0000
+0.1110
1101 开始部分积z0=0
乘数为1,加上|x|

   0.1110
   0.0111

0110 右移一位得z1,乘数同时右移一位
+0.0000   乘数为0,加上0
   0.0111
   0.0011
+0.1110
0
1011
右移一位得z2,乘数同时右移一位
乘数为1,加上|x|
   1.0001
   0.1000
+0.1110
10
1101
右移一位得z3,乘数同时右移一位
乘数为1,加上|x|
   1.0110
   0.1011
110
0110
右移一位得z4,乘数已全部移除

注: ①部分积的第一位并非符号位, 而是为了存放运算过程中绝对值大于或等于 1 的值而设置的; ②由于乘积的数值部分是两个数的绝对值相乘的结果, 故运算过程中的右移操作均为逻辑右移。
由上可知, | x| ×| y| =0. 10110110, 乘积的符号位为 x0 ⊕ y0 =1⊕ 1=0, 故 x×y=0. 10110110。

【答案解析】