定点加减法运算以及乘法

定点数的加减法运算——原码

加法规则:首先判断符号位,如果相同,则将绝对值相加,结果符号位不变;如果不同,则做减法,绝对值大的数减去绝对值小的数,结果符号位与绝对值大的数相同。

减法规则:首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。

 反码的加法运算

反码加法在最高位进位而丢掉高位时,必须在最低位补上 +1。

定点数的加减法运算——补码

补码运算特点:

(1) 参与运算的两个操作数均用补码表示。

(2) 按二进制运算规则运算,逢二进一。

(3) 符号位与数值位按同样规则一起参与运算,符号位运算产生的进位需要丢弃,结果的符号位由运算得出。

(4) 补码加减运算按照以下公式进行。当参加运算的数是定点小数时,模M=2;当参与运算的数是定点整数时,模M=2

[A+B]补 = [A]补 + [B]补

[A-B]补 = [A]补 + [-B]补

溢出:

在定点整数运算过程中如出现大于字长绝对值的现象称为“溢出”,在定点机中出现溢出时其结果是不正确的,故运算器必须能检测出溢出。

两个正数相加结果大于机器字长所能表示的最大正数称为正溢;
两个负数相加结果小于机器所能表示的最小负数称为负溢;
为了判断“溢出”是否发生我们采用双符号位法,又称为“变形补码”

半加器

半加器是指对输入的两个一位二进制数相加(A与B),输出一个结果位(SUM)和进位(C),没有进位的输入加法器电路,是一个实现一位二进制数的加法电路。

真值表

被加数A加数B和SUM进位C
0000
0110
1010
1101

根据上述的真值表,当A和B相同时SUM为0,否则为1;逻辑关系属于异或;当A和B同时为1时,C等于1,其余都为零,逻辑关系为与。
逻辑表达式:

20191020003658738.png

半加器电路图:

f399afe5ea094092b9b87da2423e84d0.jpeg

全加器
全加器是实现两个一位二进制数相加的基本单元,其内部主要由 n 个全加器构成。 设A(i)为被加数,B(i)为加数,本位和S(i),本为进位C(i+1),低位进位C(i)

全加器真值表

70

全加器表达式:

7a1c7ff7e68e464c80d0ab7f451f2821.jpeg

 全加器电路图:

1c8b86bd78774d3291b7e10bba9ebaf3.jpeg

优点:简单;

缺点:高位要等待低位运算; 

 1.人工算法与机器算法的同异性\n\n在定点计算机中,两个原码表示的数相乘的运算规则是:

乘积的符号位由两数的符号立按异或运算得到,而乘积的数值部分则是两个正数相乘之积。

设n位被乘数和乘数用定点整数表示

被乘数 [x]原=xfxn-1…X1X0

乘数[y]原=YfYn-1-y1yo

乘积[z]原=(xy(+)yf)+(xn-1…x1x0)(Yn-1-1·yivo) (2.22)

式中,x,为被乘数符号,y为乘数符号。

乘积符号的运算法则是:同号相乘为正,异号相乘为负。由于被乘数和乘数的符号组只有四种情况(xyyy=00,01,10,11),因此积的符号可按“异或”(按位加)运算得到。

数值部分的运算方法与普通的十进制小数乘法相类似,不过对于用二进制表达的数来,其乘法规则更为简单一些。设x=1101,y=1011,先用习惯方法求其乘积,其过程如下:

d0f8fc9fac4c4c58b754d904bbf35fce.jpg

6748835ec47f47bd9879fce9736b8e97.jpg

3ceecc594217448282b871e6964a235e.jpg

619d8411e9a44b979d47a10763fda3d9.jpg

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值