14th:二進位的運算
來自專欄解鎖「扌矣足易」圈1 人贊了文章
上一篇聊了聊二進位,很多朋友反應:"看過之後很懵圈!"
所以,這段時間我也在極力的反思,究竟用一個什麼樣的方式能讓大家更好的理解這些東西。
後來終於想明白了,為什麼非要讓大家理解這些東西呢?就是掃個盲,難道還指望讓大家看完之後,去設計計算機么?寫這個專欄的初衷就是讓大家了解計算機這個行業,或是互聯網這個行業,明白我們整天忙忙叨叨的做了些什麼...
複習一下上期的內容吧:
為什麼要使用二進位?
因為電子元件只能識別兩種狀態,「通電」、「不通電」,但「不通電」的狀態很難去區分到底是真「不通電」還是壞了,所以改用「高電平」和「低電平」來表示計算機世界中的事物。
用1表示「高電平」,用0表示「低電平」,這樣即方便我們使用,也便於與真實的世界對應。
這就是使用二進位的原因,因為只有用二進位,才能讓計算機懂得我們,為我們效力。
如何在計算機里玩轉二進位?
運算
上期聊過了,二進位可以和十進位、八進位、十六進位轉換,那完成了二進位的運算就可以完成十進位、八進位、十六進位的運算了。
基本的運算是加減乘除,但終歸可以都轉為加法。
減法是加上一個負數、乘法就是N個相同的數相加、除法就是乘以一個倒數。沒錯,只要大家明白這個,然後學會加法,以及負數、倒數的轉換,是不是常規運算就實現了?具體怎麼做暫不聊,這裡只聊加法。
加法:
由於二進位只有0和1兩種狀態,所以加法的結果很簡單,只有0、1、10,這些電子元件也很容易實現。
0+0
好比兩股低電流從你身體經過,最終從大地流走,身體並不會有太大的反應,流入大地的也是電低流;電子元件也如此,兩個低電平輸入,流出一股低電平,所以0+0=0。
1+0
好比一高一低兩股電流從身體經過,這是身體就有感覺了,而電流從大地流出去的也是高電流,電子元件也如此,所以就可以表示1+0=1。
1+1
好比兩股高電流從身體經過,最終從大地流走,這時身體就會受不了,會爆表;電子元件也是如此,但人們為了不讓電子元件不被燒毀,會設計一個保護措施,即從中引出一條引線把高電流引走,然後輸出一股低電流,所以1+1=10,0就是輸出的那股低電流,1就是引出去的高電流,引到哪裡?引給其它位上0和1的運算,就是所謂的「進位」。
所以在計算機內部,就是不停的在進行0和1之間的運算,以此來表示我們通常的計算。
在計算機中,所有的0、1運算都在CPU里進行,所以CPU的優劣決很大程度決定著計算機的運算能力。
為什麼要說「很大程度」?因為光計算快還不夠,還要有源源不斷的0和1被輸入到CPU里,才能把它的作用發揮到極致,為了更有效的讓計算機去運算,人們發明了內存、顯卡等等,就是為了更有效的壓榨CPU,這些原理以後找機會再聊,今天的主題就說到這吧。
推薦閱讀:
※二進位的「前世今生」
※周易與二進位
※二進位演卦
※反轉一個位元組 和 判斷32位整數二進位中1的個數 的演算法 - todototry的專欄 -...
※《周易》與二進位的數碼世界