讀了《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來...