博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《数字逻辑设计与计算机组成》一3.5 2的补码加法/减法器
阅读量:6458 次
发布时间:2019-06-23

本文共 1488 字,大约阅读时间需要 4 分钟。

3.5 2的补码加法/减法器

对于带符号的算术运算,它们的数值可以表示成正数或者负数的2的补码。两个n位数字(A)2s和(B)2s的减法可以表示成(A)2s和(- B)2s的加法,如下所示,这里(B)1s表示简单地对B的每一位进行取反,即B的反码。

2的补码减法算法
image

图3-11展示了2的补码减法算法过程。“+ 1”用一位进位输入来实现。

image

image

类似地,下列算法描述了n位2的补码加法。在这个例子中,输入B没有变化且进位输入设为0。

2的补码加法算法
image

2的补码算术产生n位2的补码输出,进位输出被忽略且不被计算到最后结果中。然而,结果还是有可能会溢出。例如,考虑用1减最小的n位二进制补码负数,或者1加上最大的n位2的补码正数。在两个例子中,结果差值和和值都会超过n位负数和n位正数2的补码表示的范围。

当A和B都是2的补码正数时,它们的符号位为0。在这个例子中,为了保证A + B不会溢出,加到符号位的进位必须为0。这样会产生0作为进位输出;不然就会产生溢出。例如,考虑图3-12中的例子a和c。在例子a中,A = (0111)2s = 7且B = (0001)2s = 1都是2的补码正数,此外,A是最大的4位正数。如图中所示,当B = 1与A = 7相加,结果为(1000)2s = - 8,一个负数,这就意味着溢出。在这个例子中,c3 = 1,且当其与都为0的符号位相加的时候,这就让符号位之和变为1(负数)且c4 = 0≠c3 = 1。要使溢出情况不会出现,当两个2的补码正数相加时,c3和c4都必须为0。
在例子c中,当两个负数A = - 1和B = - 2相加,符号位都为1,如果c3 = 1产生c4 = 1
则A + B不会溢出。否则,结果就会溢出,生成一个正数为结果。从例子a和例子c中得到的结论是当c3 = c4时,结果不会溢出,不论A和B是正数还是负数的2的补码形式。
例子b和d展示了减法。在这个例子中,等式A - B就是在计算A + (B)1s + 1。在例子b中,当B = 1(正数)去减A = - 8时(最小的4位2的补码负数),c3为0,加到符号位(都为1)上时,产生7为结果(不正确的结果)。注意,c4 = 1≠c3 = 0。在例子d中,A = - 1和B = - 2都为2的补码负数,且当相减时,结果不会溢出。注意到在这个例子中,c3 = 1与c4 = 1(c3 = c4)值相等。两个正数相减也不会产生溢出的情况。
表3-2为n位2的补码加法器/减法器溢出信号ovf的真值表。进位cn - 2与符号位相加产生最终进位cn - 1。公式(3-14)定义了溢出信号:
image

图3-13展示了两个框图:a)2的补码加法器和b)2的补码加法器。两个框图只有输入(B)2s和处理进位不相同。在图3-13a中,输入B与A相加,并没有改变表示形式。在图3-13b中,输入B在与A相加之前,经过了按位非运算。这样,我们可以只有一个加法器模块来组合两个电路框图实现一个加法器/减法器模块。可以用反相器模块来转换结果,当加法时输出B,当减法时输出B的非,当运算减法时,E = en - 1…e1e0等于B的反码或者表示为(B)1s。模式信号m用来表示运算模式,当m = 0(进位输入为0)时,运行加法,当m = 1(进位输入为1),运行减法。

image

image

image

表3-3为一位反相器片的真值表。最后组合设计如图3-14所示,信号m也被用于最初的进位输入值。注意到有信号m的模块与进位输入连接不能用于这几位串行的大型加法器/减法器电路。如果需要设计位串行电路,必须用分开的进位输入作为输入。

image

转载地址:http://fdszo.baihongyu.com/

你可能感兴趣的文章
JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记4
查看>>
C#技术------垃圾回收机制(GC)
查看>>
漫谈并发编程(三):共享受限资源
查看>>
【转】github如何删除一个仓库
查看>>
Linux系统编程——进程调度浅析
查看>>
大数据Lambda架构
查看>>
openCV_java 图像二值化
查看>>
状态模式
查看>>
删除CentOS / RHEL的库和配置文件(Repositories and configuraiton files)
查看>>
DJANGO变动库的一次真实手动经历
查看>>
VC++获得微秒级时间的方法与技巧探讨(转)
查看>>
HDOJ-1010 Tempter of the Bone
查看>>
MySQL my.cnf参数配置优化详解
查看>>
JavaNIO基础02-缓存区基础
查看>>
日本开设无人机专业,打造无人机“人才市场”
查看>>
190行代码实现mvvm模式
查看>>
PXE部署实例
查看>>
cobbler初探------实现自动安装centos6.4
查看>>
Android Studio 2.0 preview3 BUG
查看>>
兼容几乎所有浏览器的透明背景效果
查看>>