【從與非門到計算機】第二話 補碼與減法器
2023-07-15 17:16 作者:不穩(wěn)定的NaN3 | 我要投稿
上回說到,我們制作出了16位加法器。現(xiàn)在,我們要進一步做出第二簡單的運算:減法。
我們小學就學過A-B=A+(-B),所以只需要一個取相反數(shù)的邏輯電路就行了。
然而我們的16位二進制數(shù)只能表示0到65535的整數(shù)。怎么辦呢?
要知道,在運算中,超過16位的部分會被舍棄,稱為溢出。這使得兩個大數(shù)相加可能會得到較小的數(shù),找到一個數(shù)的相反數(shù)也就有了可能。那么試著找一下5的相反數(shù)吧!
首先,寫出5的二進制形式:0000000000000101
然后,將16位全部取反:1111111111111010,這樣兩數(shù)加起來就是1111111111111111了。、
最后,為了兩數(shù)加起來為0,我們需要用到溢出了。只需要在取反的結(jié)果上加1,就可以了。
所以:0000000000000101的相反數(shù)是1111111111111011。
等等,上面的數(shù)不是65531嗎?為什么是-5呢?
這是因為這里使用的是補碼系統(tǒng),只能表示-32768到32767的整數(shù),所以65531這樣的數(shù)就表示負數(shù)啦~

為了做減法器首先,我們將16位加法器改成集位線輸入輸出:

封裝起來:

接著做一個自增1的電路:

然后封裝起來:

于是就可以快樂地做減法器啦~

封裝一下:

于是我們的減法器就做好了。在下一話,我們將會講選擇器和多路復(fù)用器的制作。
標簽: