二進位圖解入門教學

什麼是二進位呢?為什麼又需要二進位?它跟我們有什麼關係?讓我們簡單地用圖解來一起學習二進位吧!
simple
HIHI ~ 😍 如果你是第一次來的話,『Chan-Chan-Dev』是一個專門用簡單的圖文與故事講解網路程式技術的網站。
若你也喜歡用這種方式學習的話,歡迎加入 Chan-Chan-Dev Facebook 的粉絲團,在發佈的時候就有比較多機會收到通知喔!😍
simple
這篇文章之前已於 2020/01/05 發佈在 Medium,因爲已經不再維護 Medium,因此將這篇文章搬回來囉! 😆
在理解二進位之前,也許可以先從我們最習慣的『十進位』開始出發。
我們開始吧!😆
十進位
假如有人叫我們從 0 數到 10,我們習慣的數數方式大概會是這樣:『 0, 1, 2, 3, 4, 5, 6, 7, 8, 9』,從 0 一路數到 9,下一個數字遇到了 10,因為是十進位的關係,所以遇到 10 就會自動的進位。
simple
所謂的『近位』也就是右邊的個位數字歸 0(下圖藍色的 0 ),而在左邊的數字 +1 (下圖紅色的 1)的意思。

0 ~ 10 的進位至於到了 90 ~ 99 的時候,下一個數字 個位數 的 9 + 1 等於 10 ,於是需要進位:
simple
個位數歸 0,十位數要加上 1,此時的十位數的數字是 9,所以 9 + 1 等於 10,所以十位數也需要進位:十位數 歸 0,百位數要加上 1,所以就會變成 100。

二進位
如果我們從上述知道十進位的意思其實就是遇到數字 10 就把就數字歸 0 並且往下一個位數加上 1,那二進位呢?
其實就是遇到數字 2 就把就數字歸 0 並且往下一個位數加上 1 的意思,完全跟上述的十進位的方法一模一樣 😆


red fas fa-exclamation-circle simple
只是這裡要注意的是,當用二進位的時候,就無法帶著十進位的觀點來看。
例如:二進位的 11,雖然看起來很像十進位的 11,但是因為它是用二進位來計算的,所以二進位的 11 其實是十進位的 3,如下圖。

因此,二進位與十進位一樣,都是可以用來表示某一個數字的方法。
隨著數字越來越大二進位的『位數』也會越來越多,例如十進位的 255,用二進位來表示的話就會是: 1111111,必須要用 8 個位數才能表達十進位的 255 。
如果只剩下二進位…
想像一下如果日常生活中所用的數字變成二進位的話會變成什麼樣子:
simple
ex: 最新的 iphone 售價是 0110000101000100 元(十進位爲 24,900)
ex: 去歐洲旅遊的旅費大概是 0001100001101010000 左右吧(十進位爲 100,000)
orange fas fa-question-circle simple
既然二進位的那麼多位數在日常生活中是很不方便的,但是為什麼又會需要二進位呢?
因爲雖然人類很不擅長用二進位的方式來思考,但剛好這是電腦的強項,電腦的資料(圖片、影片、聲音檔等等)都是以二進位的方式來做儲存,因此被稱作爲 二進位檔案。
二進位檔案
電腦把所有的資訊都用「數字」來表示,更精準一點的來說,是用「二進位的數字」來表示,所以在電腦裡的世界就是只有 0 與 1,就算是連我們習慣看到的十進位的數字 24900,其實它還是以二進位的資料被儲存了下來。
所以如果以剛剛的十進位的 255,用二進位來表達就是 11111111 ,每一個「位數」(每一個 1 ),以電腦的資料的角度來看就是 1 個位元 (bit),而 8 個位元組成 1 組,所以稱之爲位元組( byte )。
二進位的概念小總結
simple
- 1 bit(位元) =
0或1的兩種可能 - 1 byte(位元組) =
8個位元
二進位衍生單位
剛剛上面有提到說二進位資料,舉凡文件、音樂、電影、圖片等等在電腦上看得到的內容是上述的二進位資料的範圍內。音樂、圖片、或電影經過「數位化」的方式被儲存(被用 0 或 1 的方式儲存在電腦裡)。這些檔案本身是有內容的,因此被用數位化的方式儲存起來就會有所謂的資料的大小。
想像一部魔戒 3 小時長電影如果要用 bit 位元單位來顯示它的影片大小的話,那也許會是用很多很多數字的長度呈現,看來想要 bit 位元單位來形容這部電影的容量大小可能是一件滿不容易的事情。
因此在位元 bit 與位元組 byte 的單位中,又發展出了以下幾種的單位:
simple
- 1
bit(位元)=0或1的這兩種可能, 用小寫的b作爲縮寫代表 - 1
byte(位元組)=8 個位元(bit),用大寫的B作爲縮寫代表 - 1
Kilobyte= 1024 個位元組(byte),用KiB作爲縮寫代表 - 1
Megabyte= 1024 個Kilobyte,用MiB作爲縮寫代表 - 1
Gigabyte= 1024 個Megabyte,用GiB作爲縮寫代表 - 1
Terabyte= 1024 個Gigabyte,用TiB作爲縮寫代表
註:十分感謝 jserv 大神對於 Binary prefix 的提醒:『為了區別 K=1000 (SI Prefix),KB 與 MB 應寫作 KiB, MiB (即 Binary prefix) 』😍
所以有了這些衍生的單位後,也許我們敘述一部魔戒 3 小時長的電影就可以用 Gigabyte 的單位來形容說會有 2 GiB 多那麼大。
當然我們也可以用 Megabyte 的單位來敘述說有 2,048MiB 多那麼大,當然硬要用 Kilobyte 的單位來形容說是 2,097,152(2,048MiB x 1,024KiB) KiB 那麼大也沒有不行,只是聽得人可能對於它實際上有多大的概念更爲模糊 😆
simple
2GiB => 1GiB 等於 1024 個 Megabyte => 2GiB x 1024MiB = 2048MiB
2048MiB => 1MiB 等於 1024 個 Kilobyte => 2048MiB x 1024KiB = 2,097,152KiB
我們用 KiB 來形容這部電影的大小已經有 2,097,152 的數字,如果要在用 bit 的單位來形容有興趣的同學可以自行計算看看囉,大概就會知道為什麼用 bit 位元單位來形容電影的容量大小可能是一件滿有挑戰的事情囉。
生活中小例子
此外其實資料容量的觀念其實是生活中滿常會接觸到的事情,例如:
- 最新的 iphone 居然有 512G 那麼大的容量耶,我的照片不用怕裝不下了 😍
- 499 元的網路資費一個月可以下載 6G 的數據流量 🤔
也許可以用數字的概念來想像如果今天沒有「千」、「萬」、「億」作爲數字的單位的話,對於要形容 9,000,000,000 這個數字,要我們無法用「9 億」的單位,只能用「百」的單位來形容它也許也會是滿不方便的一件事情吧。
Take Away 小整理
- 二進位的最小單位爲
bit 位元,8bits爲 1 個byte 位元組 - 任何數位檔案都是用
二進位的方式被儲存的 - 因爲檔案或容量的大小用 bit 或者 byte 來當單位會造成數字很多的問題,所以發展出更大的單位,例如:KiB、MiB、GiB、TiB 等等
這大概就是二進位的基礎觀念,當然還有其他的進位,例如八進位、十六進位等等的,也許未來有機會在針對他們進行討論囉 !
最後感謝你願意看到這裏,希望這篇文章對你有所幫助。
若你想到身邊有需要這篇文章內容的朋友,也請你幫他一個忙把這篇文章分享給他 😍
若文章的內容有錯誤的地方,也歡迎隨時一起討論交流。😘
最後感謝你的閱讀囉,我們下次見!Bye ~ 🚀