已知 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 |
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。