1樓:新羅奇藍
全減器是兩個二進位制的數進行減法運算時使用的一種運算單元,最簡單的全減器是採用本位結果和借位來顯示,二進位制中是借一當二,所以可以使用兩個輸出變數的高低電平變化來實現減法運算。
同時,全減器可以採用74ls138三線—八線譯碼器實現。
全減器真值表如下:其中ai表示被減數,bi表示減數,di表示本位最終運算結果,即就是低位向本位借位最終結果,ci表示低位是否向本位借位,ci+1表示本位是否向高位借位。
2樓:究竟在搞啥
「ai表示被減數,bi表示減數,di表示本位最終運算結果,即就是低位向本位借位最終結果,ci表示低位是否向本位借位,ci+1表示本位是否向高位借位。(ci+1中的i+1是下標···)」
剛開始為什麼看不懂呢?因為被一大堆諸如「本位」,「借位」,「低位向本位借位」,「本位向高位借位」這樣的紙老虎嚇到了。那接下來就對這些逐一分析。
首先明確,輸入的是ai、bi和ci。輸出的是di和ci+1。
因為我們都對十進位制的減法比較熟悉,那麼我們就以十進位制減法為例來解釋什麼是「本位」,「借位」等等概念。
比如你我都清楚30-11=19,30是被減數,11是減數。但是我們按照小學剛學加減法時候的步驟一步一步來:
畫圖:30 30 30
- 11 - 11 - 11
—— => —— => ——
= = 9 =19
圖1 圖2 圖3
首先個位相減:0-1,不夠減,所以個位的0需要向十位的3借一位,即「本位向高位借位」,然後再相減,即10-1=9,這樣得到圖2。
然後十位相減:3-1,但是由於剛剛個位相減時向3借了一位,即「低位向本位借位」,這樣就變成了2-1=1,即「本位最終運算結果」。也就得到30-11最終結果如圖3所示。
這樣再看真值表或許可以明白些。
比如拿真值表的最後一行舉例:
ai=1,bi=1,本來應該是ai-bi=1-1=0,但是別忘了ci=1,也就是低位向ai借了一位。
所以這時ai-bi=0-1,但是又不夠減了,怎麼辦呢,所以ai就需要向高位借位了,即本位向高位借位,也就得到了ci+1=1。
借位過後再減,也就得到了最終結果也就是di,等於1。
其他的情況類似。
剛開始覺得這樣設計好複雜,不過後來覺得一點也不復雜,反而是最簡化的設計,就像全加器一樣,許許多多個這樣的器件組合在一起便可以完成大數的加減運算!
3樓:上單少年蕪湖鱷
最簡單的全減器是採用本位結果和借位來顯示,二進位制中是借一當二,所以可以使用兩個輸出變數的高低電平變化來實現減法運算。
全減器真值表如下:其中ai表示被減數,bi表示減數,di表示本位最終運算結果,即就是低位向本位借位最終結果,ci-1表示低位是否向本位借位,ci表示本位是否向高位借位。
邏輯函式:
全減器輸出邏輯函式如下:di=ai⊕bi⊕(ci-1)ci=aiˊ(bi⊕ci-1)+bici-1
4樓:靝
高讚的那個回答不嚴謹 根本毫無邏輯可言 來看看這個分析
一行一行分析
in=0,b=0,a=0時,d=a-b=0,此時a的值足夠減b,因此不需要向高位借位,所以out=0;
in=0,b=0,a=1時,d=a-b=1,同樣的a的值足夠減b,因此不向高位借位,out=0;
in=0,b=1,a=0時,此時a
in=0,b=1,a=1時,d=a-b=0,同樣的a的值足夠減b,因此不向高位借位,out=0;
in=1,b=0,a=0時,原本a是足夠減b的,但是這裡in=1了,即a的低位向a借位了,可是a=0沒有辦法借給它,因此a需要向自己的高位再次借位,所以out=1,a向高位借位之後為2,再借給a的低位要減一,所以a=1,d=a-b=1;
in=1,b=0,a=1時,in=1了,a的低位向a借位了,a被借走1,a=0,足夠減b,不需要向高位借位out=0,d=a-b=0;
in=1,b=1,a=0時,in=1了,a的低位向a借位了,a=0沒有辦法借給它,因此a需要向自己的高位再次借位,所以out=1,a向高位借位之後為2,再借給a的低位要減一,所以a=1,d=a-b=0;
in=1,b=1,a=1時,in=1了,a的低位向a借位了,a=1可以借給低位,借完之後a=0,不足以減b,a要向自己的高位借位out=1,借完之後a=2,d=a-b=1;
5樓:zjh暫時還活著
二進位制中是借一當二,十進位制中是借一當十,如0-1,來自低位借位是指0借了一位給低位,如果要減,那麼0就還要向高位借一位,高位借的那一位是當做二的,所以得到結果為01101
6樓:匿名使用者
高位借位ci相當於2¹=2
7樓:匿名使用者
看了很多講解,自己終於看明白了全減器,對於不懂得人來說,對向低位借位是一頭霧水,我們不管這些,我直接給你們講真值表怎麼看 ,首先輸入的是a,b,ci-1輸出的是di和ci
簡單來說di=a-(b+c),其中b+c放一起看,對b+c來說,比如0+1就是1,1+0這個還是1,
ci的輸出就是,a在減(b+c)的時候看夠不夠減,不夠減,就是ci為1,夠的話就是ci為0,換句話說就是二進位制減法 ,a是否借位了。第一次回答問題,希望大家能看懂啦
二進位制如何轉換成八進位制二進位制怎麼轉化成其他進位制詳細過程
先了解二進位制 數與八進位制數之間的對應關係。有個方法,把二進位制的數從右往左,三位一組,不夠補0 列 111 4 2 1 7 11001拆分為 001和011,001 1,011 2 1 3 那麼11001轉換為八進位制就是31.擴充套件資料二進位制轉換為十六進位制 參照二進位制轉八進位制,但是它...
二進位制轉換16進位制二進位制轉換16進位制彙編
16進位制有數字0 9,還有a f,一共16個數碼。轉換的時候,先統一加上30h,然後要判斷是數字還是字母,數字的ascii碼和字母的ascii碼可不是一樣的哦。所以和3ah比較。如果是數字,不變 如果是字母,再加上7h 你的程式是用大寫字母表示,若是小寫字母,那應該再加上27h 數符在輸出時是按其...
二進位制的負數如何算,二進位制的負數如何算?
在二進位制碼中,採用最高位是符號位的方法來區分正負數,正數的符號位為0 負數的符號位為1。剩下的就是這個數的絕對值部分。通過將負數轉為二進位制原碼,再求其原百碼的反碼,最後求得的補碼即負數的二進位制表示結果。比如整數 1。先取1的原碼 00000000 00000000 00000000 00000...