閱讀前,建議可以參考Day1:閱讀指南&為何選擇這個題目?
題目:計算機概論X30天
挑戰內容:連續30天紀錄計算機概論、離散數學、演算法、資料結構等課程,還有自己學習程式的心得體悟。
本篇性質:純粹上課內容的紀錄
,不會有太嚴謹或是流暢的說明,因此不適合認真閱讀(怕你被誤導)。我很有自信的說「這篇真的很難懂XD」,所以不是你智商的問題,請不要難過。
根據上一篇的邏輯,電腦做加法的方式就是把很多全加器串起來的結果。
比如說做4bit+4bit加法,就是把4個全加器串起來就好。
那如果要減法怎辦?那就做多個全減器串起來吧!!!
才怪。
這樣超麻煩好嗎,你要做「全加器」又要做「全減器」又要串起來,累死了。
因此實際的做法是做一個「加法器」就好ㄌ
要怎麼用加法器,做減法呢?比如說a-b要怎麼做?
簡單,就是把a-b變成a+(-b)就好
那要怎麼把b變成-b啊?其實-b就是b的補數而已
因為a和b的補數相加,會有a-b的效果。
好,所以其實只要用一個加法器就可以做減法了。
但是電腦怎麼知道什麼時候要把b變成-b?
可以用Multiplexer
簡單來說,他就是可以選擇要讓b電流通過,還是-b電流通過。比如當Multiplexer的input是1,那可能就讓b電流通過,這表示要做加法。如果Multiplexer的input是0就可以讓-b電流通過,這表示要做減法。
因此只要控制Multiplexer,就可以控制要做加減法了。