欢迎光临散文网 会员登陆 & 注册

【从与非门到计算机】第二话 补码与减法器

2023-07-15 17:16 作者:不稳定的NaN3  | 我要投稿

上回说到,我们制作出了16位加法器。现在,我们要进一步做出第二简单的运算:减法。

我们小学就学过A-B=A+(-B),所以只需要一个取相反数的逻辑电路就行了。

然而我们的16位二进制数只能表示0到65535的整数。怎么办呢?

要知道,在运算中,超过16位的部分会被舍弃,称为溢出。这使得两个大数相加可能会得到较小的数,找到一个数的相反数也就有了可能。那么试着找一下5的相反数吧!

首先,写出5的二进制形式:0000000000000101

然后,将16位全部取反:1111111111111010,这样两数加起来就是1111111111111111了。、

最后,为了两数加起来为0,我们需要用到溢出了。只需要在取反的结果上加1,就可以了。

所以:0000000000000101的相反数是1111111111111011。

等等,上面的数不是65531吗?为什么是-5呢?

这是因为这里使用的是补码系统,只能表示-32768到32767的整数,所以65531这样的数就表示负数啦~

为了做减法器首先,我们将16位加法器改成集位线输入输出:

强迫症福音

封装起来:

16位加法器

接着做一个自增1的电路:

自增1

然后封装起来:

自增1

于是就可以快乐地做减法器啦~

减法器

封装一下:

封装

于是我们的减法器就做好了。在下一话,我们将会讲选择器和多路复用器的制作。

【从与非门到计算机】第二话 补码与减法器的评论 (共 条)

分享到微博请遵守国家法律