原码一位乘法与补码一位乘法

逻辑移位与算术移位

  • 逻辑移位:不管逻辑左移还是逻辑右移缺位补0
  • 算术移位:1.无符号型值,和逻辑移位相同 2.有符号型值,根据符号位补缺位(和符号位相同)

 

在下面的原码一位乘和补码一位乘都遵循以下规则:

  • 1.多余进位舍去
  • 2.一直执行到乘数被用完(被移除完)
  • 3.原码最后需要一位,补码不需要移位
  • 4.原码补码一位乘取值都不去原乘数的数

 

原码一位乘法

定义:

符号位单独参加运算,数据位取绝对值,每次将一位乘数对应的部分积与原部分积的累加和进行相加,并右移一位,直到乘数的所有位被用完。

 

举例

X=0.1101,Y=-0.1011,求XY

1.设置部分积,乘数与被乘数的绝对值

A=00.0000,B=|X|=00.1101,C=.1011

2.若判断位(C的最后一位)为0,则部分积+0000;若为1,部分积+B

 

 

接着我们对符号的确定,是通过对被乘数与乘数的符号位进行异或判断的。

XY=(0⊕1).10001111=1.10001111

 

 

补码一位乘

补码一位乘在操作和判断位上和原码一位乘有区别(原码一位乘为一位,补码一位乘为两位)

 

例题:X=-01101,Y=-01011,求[XY]=?

 

做这道我们首先需要了解,两位判断位对应的操作

判断位 操作
00 右移一位
01 +B,再右移一位
10 -B,再右移一位
11 右移一位

 

 B补,-B补,C分别对应 [X]补,[-X]补,[Y]补

所以我们直接可以得到,XY=0010001111

posted @ 2019-06-28 13:11  Hk_Mayfly  阅读(20588)  评论(4编辑  收藏  举报