运算方法和运算器

加法规则:

先判符号位,若相同,绝对值相加,结果符号不变;若不同,则作减法,|大|-|小|,结果符号与|大|相同。

减法规则:

两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。

2.补码加法运算

补码加法的公式:

[x]补+[y]补=[ x+y]补 

特点:不需要事先判断符号,符号位与码值位一起参加运算。

符号位相加后若有进位,则舍去该进位数字。

在模2意义下,任意两数的补码之和等于该两数之和的补码。

这是补码加法的理论基础。

补码加法的特点:

(1)符号位要作为数的一部分一起参加运算:

(2)在模2的意义下相加,即大于2的进位要丢掉。

其结论也适用于定点整数。

补码减法运算的公式:
[x-y]补=[x]补一[ y]补=[ x]补+[- y]补公式证明:只要证明[一y]补=一[y]补,上式即得证。证明:
[x+y]补=[x】补+[y]补 
令y=-x
[0]补=[x]补+[一y】补
故 [一x]补=一[x] (mod 2)
减法运算要设法化为加法完成。
例: x=+0.1101,y=+0.0110,求x-y。解: [x]补=0.1101
[y]补=0.0110     [-y]补 =1.1010
   [x]补        0.1 1 0 1
+[一y]         1.1 0 1 0 :    所以x-y=+0.0111
[x一y]补    1 0.0 1 1 1
例: x=-0.1101,y=-0.0110,求x-y
解: [x]补=1.0011

  [y]补=1.1010    [-y]补=0.0110

    [x]补       1.0 0 1 1
+[-y]补     0.0110
[x-y]补       1.1 001      所以x -y =0.0111

基本的二进制加/减法器

利用全加器可以实现两数的和或差

串行加法:从低位开始,每步只完成一位运算的加法。

-串行加法器只需要一个全加器和一个进位触发器

-计算两个n位数之和,需要n+1步(1位符号位),或n+2步(2位符号位)运算。

-高位运算只有等低位运算完成后才能进行,速度较慢

并行加法器:可在同一时刻完成n位数的运算。

-若采用变形补码表示一个机器数,则符号位需2位,这时需要n+2个加法器。-运算速度比串行进位加法器高很多,这是用足够多的硬件设备换来的。

11c5efe8adfa4b54ba699c60b315a902.jpg
 

 1.人工算法与机器算法的同异性

在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号立按异或运算得到,而乘积的数值部分则是两个正数相乘之积。

设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,先用习惯方法求其乘积,其过程如下:

eaddbca520df4540a9e6e3031829b21d.jpg

a60c6f4255f84e32a15cd864a97ad0ff.jpg 

b48d15e8785944f9a49276f4dc4353db.jpg 

c7163fa7f94642d2a38a7a492b567b7c.jpg 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值