原码、补码、移码定点运算--加减

1、原码加减:
符号位单独处理,数值为加减。

先比较两数符号:
加法:同号数值求和,异号求差, 求和:3原+2原, 求差:3原+【-2】原
减法:异号数值求和,同号求差。求和:3原-【-2】原, 求差:3原-2原

求和时:数值位相加,和的符号取被加数(被减数)符号
若最高位产生进位,则结果有溢出

求差时:被加数(被减数)与加数(减数)求补后相加
最高位数值有进位,相加结果为正,数值为正确,符号取被加数(被减数)符号;
最高位数值无进位,相加结果为负,得到数值位的补码,需对结果求补还原位绝对值形式的数值位,符号位与被加数(被减数)的符号相反。

例:已知【X】原=1.0011,【Y】原=1.1010,计算【X+Y】原。
解:
同号相加,则求和,和的符号同被加数符号。
和的数值位为:0011+1010=1101
和的符号位为:1
【X+Y】原=1.1101

例:已知【X】原=1.0011,【Y】原=1.1010,计算【X-Y】原。
解:
同号相减,则数值位求差。
差的数值位为:0011+(1010)求补=0011+0110=1001
最高数值位无进位,表明加法结果为负,需对1001求补,还原绝对值形式的数值位,即:(1001)求补=0111
差的符号位为【X】原的符号位相反,即:
【X-Y】原=0.0111

2、补码加减
【X+Y】补=X补+Y补
【X-Y】补=X补+【-Y】补

数学依据:
【X+Y】补=X+Y+2^n =
X+Y+ 2^n + 2^n=【X】补+【Y】补
【X-Y】补=X-Y+2^n =
X-Y+ 2^n + 2^n=【X】补+【-Y】补
全过程以2^n 为模,即除以 2^n 后再取余数,
其中,【-Y】补=【Y补】求补

例:求【X+Y】补:
(1)X=3 Y=2
【X】补+【Y】补=0 0011+0 0010=0 0101 (+5)补
(2)X=-3 Y=-2
【X】补+【Y】补=1 1101+1 1110=1 1011 (-5)补

例:求【X-Y】补:
(1)X=4 Y=-5
【Y】补=1 1011
【X】补+【-Y】补=0 0100+0 0101=0 1001 (+9)补
(2)X=-4 Y=5
【Y】补=0 0101
【X】补+【-Y】补=1 1100+1 1011=1 0111 (-9)补

溢出判断:
假设:补码表示的A,B两数做加减运算
A:4位尾数,1位符号位(SA)
B:4位尾数,1位符号位(SB)
补码,故符号位也参加运算
结果的符号,记为Sf
符号位的进位,记为Cf,
尾数最高位的进位,记为C。

例:
(1)A=3,B=2
3+2:0 0011+0 0010=0 0101(正确)
(2)A=10,B=7
10+7:0 1010+0 0111=1 0001(正溢)
(3)A=-3,B=-2
-3+(-2)=1 1101+1 1110=1 1011(正确)
(4)A=-10,B=-7
-10+(-7)=1 0110+1 1001=0 1111(负溢)
(5)A=6,B=-4
6+(-4)=0 0110+1 1100=0 0010(正确)
(6)A=-6,B=4
-6+4=1 1010+0 0100=1 1110(正确)

①硬件判断逻辑一(根据SA,SB与Sf的关系)
溢出逻辑=非SA非SBSf+SASB非Sf
②硬件判断逻辑二(根据Cf与C的关系)
溢出逻辑=Cf⊕C(异或)
③硬件判断逻辑三(双符号位Sf1、Sf2)
溢出逻辑=Sf1⊕Sf2
00/11:正确 10-正溢 01-负溢

3、移码加减:
符号位和数值部分一起处理
在这里插入图片描述

两数移码的加减等于两数加减后表示成的移码
(1)加法:直接将【E1】移和【E2】移进行模2^n加,结果的符号取反;
(2)减法:先将减数【E2】移求补,再与被减数【E1】移进行模2^n加,结果的符号取反。

溢出判断:
进行模2^n相加时,如果两个加数与和数符号完全相同,则发生了溢出。

例:用4位移码计算“-7+(-6)”和“-3+6”的值。
解:
【-7】移=0 001 【-6】移=0 010 【-3】移=0 101 【6】移=1 110
【-7】移+【-6】移=0 001+0 010=0 011补(符号都为0,有溢出)
【-3】移+【6】移=0 101+1 110=0 011补(符号位取反后为1 011,其真值为+3)

例:用4位移码计算“-7-(-6)”和“-3-5”的值。
解:
【-7】移=0 001 【-6】移=0 010 【-3】移=0 101 【5】移=1 101
【-7】移-【-6】移=0 001+1 110=1 111补(符号位取反后为0 111,其真值为-1)
【-3】移-【5】移=0 101+0 011=1 000补(符号位取反后为0 000,其真值为-8)

  • 12
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值