《Code》讀書筆記12 二進位制加法器

2021-08-14 19:11:49 字數 1191 閱讀 3918



讀了《code》第12章:二進位制加法器,用自己的方式來總結一下。

計算機cpu本質上也就是積體電路,那麼cpu是怎麼實現最基本的加法的呢?

在電路中,只有2種狀態(開、關),對應於二進位制中的1和0;

但是我們可以把這2種狀態組合起來,構造成多種邏輯關係。

與門 and        (通過串聯實現)

或門 or           (通過併聯實現)

非門 n             (通過反向器實現)

與非門 nand  (串聯的反向)

或非門 nor     (併聯的反向)

異或門 xor      (正向加反向的串聯)

電路不能做算術運算(+-*/),只能通過做邏輯運算來實現算術運算。

對於1位的2個二進位制相加共有4種組合形式:

0 + 0 = 00  //上一位進製為0

0 + 1 = 01  //上一位進製為0

1 + 0 = 01  //上一位進製為0

1 + 1 = 10  //上一位進製為0

我們可以看到輸出由兩部分組成:加和輸出,進製輸出。

加和輸出的結果是(0110),我們可以觀察出來是「異或」的結果。

進製輸出的結果是(0001),我們可以觀察出來是「與」的輸出。

在這裡還沒有完,因為我們還要考慮到前1位的進製。上述的進製輸入是0。

假設進製輸入是1:

0 + 0 = 00 + 1(上一位進製) = 01

0 + 1 = 01 + 1(上一位進製) = 10

1 + 0 = 01 + 1(上一位進製) = 10

1 + 1 = 10 + 1(上一位進製) = 11

借用書中的乙個圖:

輸入端a和b先邏輯運算一次(異或+與),然後"和輸出"和"上一位進製輸入"邏輯運算一次(異或+與),兩次進製再做或運算,最終得出的結果還是由兩部分組成: 加和輸出,進製輸出。

這只是其中1位的二進位制輸出結果,如果是8位二進位制,就需要將上圖中的電路整合起來,形成8位二進位制加法器。

我想,最重要的一點就是:積體電路通過做邏輯運算轉換成算術運算。

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

《文法俱樂部》讀書筆記之副詞 LG二進位制

副詞是可以修飾任何詞類的,因此位置很重要,放在被修飾的詞最近的位置。一 狀態和方法的副詞 這一類副詞是專門修飾動詞的,典型的拼寫方法是在單詞的尾部加上ly。一般的情況下都是放在動詞的後面。但實際上,放在動詞前面是沒有錯的 因為如果受詞或者輔詞太長的話,位置就不好確定 例如 he passionate...

python二進位制數加1 二進位制中為1的位數

二進位制中為1的位數 題目要求 給定乙個整數,請計算二進位制中為1的位數 輸入 13 輸出 3 解釋 13的二進位制表示是 1101,位為1的數量是3 思路分析 如果乙個數是奇數,那麼它的二進位制的最後一位一定是1,道理很簡單,其他的位都表示2n 只有最後一位表示20 我們可以利用最後一位是否為1來...