日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机全加器简单实现

發布時間:2024/8/23 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机全加器简单实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

用了這么久計算機, 都知道計算機有一個核心部件叫 CPU, 而 CPU中有一個小部件叫做全加器. 它是用來做什么的呢? 看名字就知道了, 做加法運算用的. 那么如何實現一個全加器呢?

你以為這又是一篇計算機內部原理的文章? 不, 放開那個女孩, 和我一起走進中學物理的課堂.

問題

先把問題拋出來, 我們的全加器大概就長這樣.

輸入端放進來兩個數字, 然后輸出端返回兩個數字的和.

拋開全加器不說, 首要問題是: 用什么來標識輸入和輸出的數字呢?

輸入輸出

當然了, 輸出輸出端都是導線, 要通過電流來表示. 那就使用電的特征咯.

方案一

簡單粗暴, 使用電壓. 數字1表示為1V, 數字10就是10V.

但是, 這個時候如果來了一個數字是10萬呢? 整個10萬 V 的電壓, 別鬧, 那還怎么抱在手里愉快的玩耍, 難道你不想玩手游了?

方案二

既然電壓太高不可取. 人體的安全電壓是36V, 也就是只要電壓不高于36V 就可以了. 我們可以用一根導線來表示十進制的一位, 這樣就可以將電壓控制在0-9V 之間了. 嗯, 安全.

但是, 電壓是不穩定的. 但是可以規定 8.6-9.5V=9. 嗯, 這個方案確實可行, 至少咱沒有看出什么問題來. (據說現在已經有十進制的了??) 但是別著急, 看下一個方案.

方案三

想一下, 除了電壓, 電還有什么特征呢? 電流? 功率? 開閉? 就是開閉. 一個電路要么連通, 要么斷開, 簡單明了沒有歧義.

用電路的開閉如何表示數呢? 表示不了十進制, 還表示不了二進制么..

好, 就是它了, 實現簡單方便.

輸入輸出的問題解決了, 剩下的就是全加器的構造了, 二進制的運算就不說了. 現在, 全加器應該長這樣:

為什么是三個輸入數字呢? c是進位. 那為什么是兩個輸出呢? y 是進位.

電路的邏輯運算

在開始全加器之前, 先來復習一下高中的物理知識.

還記得這個東西么?

畫的丑了一些, 湊合看. 他可以將電場轉換為磁場. 好, 下面的實現都是基于它的. 電磁感應. 繼電器就是基于它實現的.

邏輯電路

看下面電路:

這是一個簡單的并聯電路, 實現了邏輯或, 只要有一個電路接通, 整體就是通路. 當然了, 串聯電路就是邏輯與了. 那邏輯非如何處理呢? 這就要用到上面提到的繼電器了.

邏輯非

圖中的 J 表示繼電器.

右側電路的開關正常情況處于連通狀態, 當左側通電后, 會將右側開關吸附起來, 令其斷開. 這就實現了邏輯非. 當然,?與?或的實現也可以通過繼電器來傳遞.

邏輯與

這就是一個通過繼電器實現的與門.

當然了, 或門也是一樣的, 只是將右側的串聯電路改成并聯電路就成了.

邏輯異或

有了與或非, 把他們三拼一拼, 異或就有了.

A xor B = (!A && B) || (A && !B)

來來來, 看圖了.

這就是一個異或了. 有沒有發現什么? 可以將電路參與到邏輯運算中.

好啦, 足夠了. 開始著手實現全加器.

全加器

到這, 想必各位看官也知道為什么在全加器之前要先說邏輯電路了吧. 沒錯, 就是要把01的加法運算, 轉換成邏輯運算.

列一張真值表:

真值表在此, 請運用你們數值計算的知識, 把邏輯表達式推出來吧. 請原諒我, 下面表達式是我嫖來的, 直接把化簡后的邏輯表達式拿來了.

x = a xor b xor c

y = c && (a xor b) || (a && b)

算一算一個全加器一共用到了多少繼電器? 其中: 與(2個), 或(2個), 亦或(8個).

x 需要2個亦或, 共16個繼電器. y 需要2個與,1個亦或,1個或, 共14個繼電器. 整個全加器共需30個繼電器. 又因為 x 和 y 的計算在同一個全加器中,?a xor b的操作, xy 可以公用同一個, 所以減少一個亦或, 共22個繼電器. 據說還能少, 嗯, 咱也不知道.

以上, 一個超級簡陋的全加器橫空出世. 將上面的邏輯表達式放到電路里, 就能返回輸入結果相加后的結果.


既然有全加器, 那是不是也有半加器? 嗯, 有. 半加器就是將兩個位相加, 產生和和進位, 不考慮上一個來的進位. 簡單說, 全加器有3個運算數, 半加器只有兩個.


有了全加器, 是不是還得有全減器? 偷偷告訴你, 減法運算就是補碼的加法運算.

總結

以上是生活随笔為你收集整理的计算机全加器简单实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。