iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
0
自我挑戰組

計算機概論X30天系列 第 22

Day 22:[計算機概論]奇怪的1010如何做減法

  • 分享至 

  • xImage
  •  

閱讀前,建議可以參考Day1:閱讀指南&為何選擇這個題目?

▌挑戰簡介

  • 題目:計算機概論X30天

  • 挑戰內容:連續30天紀錄計算機概論、離散數學、演算法、資料結構等課程,還有自己學習程式的心得體悟。

  • 本篇性質:純粹上課內容的紀錄,不會有太嚴謹或是流暢的說明,因此不適合認真閱讀(怕你被誤導)。我很有自信的說「這篇真的很難懂XD」,所以不是你智商的問題,請不要難過。

▌方法

根據上一篇的邏輯,電腦做加法的方式就是把很多全加器串起來的結果。

比如說做4bit+4bit加法,就是把4個全加器串起來就好。

那如果要減法怎辦?那就做多個全減器串起來吧!!!

才怪。

這樣超麻煩好嗎,你要做「全加器」又要做「全減器」又要串起來,累死了。

因此實際的做法是做一個「加法器」就好ㄌ

▌加法器

要怎麼用加法器,做減法呢?比如說a-b要怎麼做?

簡單,就是把a-b變成a+(-b)就好

那要怎麼把b變成-b啊?其實-b就是b的補數而已

因為a和b的補數相加,會有a-b的效果。

(請參考Day12:[計算機概論]負數怎麼在電腦中儲存?

好,所以其實只要用一個加法器就可以做減法了。

▌Multiplexer

但是電腦怎麼知道什麼時候要把b變成-b?

可以用Multiplexer

簡單來說,他就是可以選擇要讓b電流通過,還是-b電流通過。比如當Multiplexer的input是1,那可能就讓b電流通過,這表示要做加法。如果Multiplexer的input是0就可以讓-b電流通過,這表示要做減法。

因此只要控制Multiplexer,就可以控制要做加減法了。

▌心得

  • 「一體適用」真的很重要,如果加法、減法器都要做,真的很浪費電路,因此不如都用一個加法器
  • Multiplexer是一個很厲害的發明,他可以藉由input控制要做加法還是減法。

上一篇
Day 21:[計算機概論]奇怪的1010如何做加法
下一篇
Day 23:[計算機概論]奇怪的1010如何做乘除法
系列文
計算機概論X30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言