CY-Left

基本功底计算机组成原理

二进制原码一位乘法-二进制乘法

原码一位乘法

原码乘法原则

被乘数 [ x ]原 = xf .x0 x1 x2 … xN

乘“`数 [ y ]原 = yf .y0 y1 y2 … yN

乘“`积 [x·y]原 = (xf xor yf).(x0 · x1 ··· xN) · (yf .y0 y1 ··· yN)

其中:

  • xf,yf为符号
  • xor 异或

原码乘法例题

例: 0.1101 x 0.1011,求其结果

[ x ]原 = 01101

[ y ]原 = 01011

运算 部分乘积 乘数 说明
00000 1011[`]
+ 01101 乘数最后一位为1,加x
= 01101 求和
00110 1101[1] 部分乘积补零,右移
+ 01101 乘数最后一位为1,加x
= 10011 求和
01001 1110[1] 部分乘积补零,右移
+ 00000 乘数最后一位为0,加0
= 01001 求和
00100 1111[0] 部分乘积补零,右移
+ 01101 乘数最后一位为1,加x
= 10001 求和
01000 1111[1] 部分乘积补零,右移

注意:
– 符号位不参加运算
– ‘部分乘积’中,最高位代表进位,不表示符号

– 关于计算几次,四位数求和四次,右移四次(直到把原来的乘数全部移出).

数值大小为 10001111.

符号位为 0 xor 0 = 0 (正数)

=> [x·y]原 = (xf xor yf).(x0 · x1 ··· xN) · (yf .y0 y1 ··· yN) = 0.10001111

本文虽拙,却也系作者劳动,转载还请保留本文链接: http://cyleft.com/?p=295



Have any Question or Comment?

发表评论

电子邮件地址不会被公开。 必填项已用*标注