如何理解二進位制(理解不了二進位制的人)
很多人第一次學計算機,就開始接觸二進位制。發現書上說的基本都是術語,不是“人話”,馬上暈倒。
二進位制是什麼?“逢二進一”是什麼?這都不重要。只要是人發明的東西,用人話就能講清楚。
咱們就用人話,看看能不能講清楚“二進位制”。
假設咱們回到古代。你在一個烽火臺上,我在另一個烽火臺上,只要你那邊來敵人,你就點狼煙通知我。
現在,我想清楚的知道你那兒具體來了幾個敵人,我好做準備工作。
怎麼辦呢?很簡單,兩個辦法。
1、按點燃次數算:你點一次火,再滅掉一次,算是一個敵人,來兩個就點2回,滅兩回。
2、按點燃堆數算:或者你同時點兩堆火。我就知道,是來了兩個敵人。
你說人來的少行,要是敵人來了200個怎麼辦?要麼來回點火累死,要麼火堆多到足夠自焚了……
時代在發展,人類在進步。
一晃愛迪生來過地球了,他發明燈泡了。
你可以用燈泡“亮”和“滅”來跟我表示這個資訊。
如果一個燈泡沒亮,說明沒有敵人。燈泡沒亮,也可以說是狀態0。
如果來了一個敵人,燈泡亮了,我就知道來了1個,這就是狀態1。
問題又來了,還是來了200個敵人,要麼你開關200次燈泡,要麼準備200個燈泡一起亮。第一個方法燈泡質量也不一定好,再說,你閃那麼快,我也數不過來。
第二個方法,我數也得數小半天,沒數完,早被敵人衝過來砍死了。還有,200個燈泡,你確定你那兒電費餘額夠不?
好在咱們都是聰明人,咱們約定,多安裝幾個燈泡打暗號。
暗號表:你一張我一張
00000000,8個燈全關,放心睡覺,這是狀態0,說明一個敵人沒有,平安無事。(狀態0)
00000001,這說明來了一個敵人,你負責幹掉他就行了。(狀態1)
00000010,這是第二個能表示的狀態,咱們給它個編號,(狀態2,說明來了兩個敵人,也沒啥大事。
接下來,應該是第三種情況了。00000011,這就是第三種情況。咱們不說換算什麼的,這種亮燈的方法咱們就叫3(狀態3)。
為了讓咱倆都明白,咱們寫個清單,你一張我一張。由清單能看出來,如果來了255個敵人,你直接開啟8個燈泡,我也就一目瞭然,準備刀槍就上了。
電腦也一樣,只有開和關(通電、斷電)來表示兩種狀態。這樣就“二進位制”了。
沒電是0,有電是1
其實,二進位制換算成10進位制,只是在10進位制裡找到對應狀態的編號。
至於2進位制怎麼計算,也很簡單,比如第一種狀態(1) 第二種狀態(2)=第三種狀態(3)。你看:
00000001 00000010---------=00000011,按表格一找,是3,就是這麼簡單。
所以,腦子裡別想著10進位制和2進位制怎麼換算,這些髒活兒累活兒,可以電腦去幹。
你只要記住表格裡的“二進位制第幾種狀態就是10進位制中的幾”就可以了。
還有,磁碟裡的2進位制,用磁鐵的N極和S極表示1和0,N=0,S=1,把硬碟放大了1000萬倍看看,上面都是小磁鐵,通過硬碟的磁頭識別,再變成電流訊號“通”和“斷”來交給CPU處理。
那光碟上也一樣,光碟上是用“長”和“短”的小鏡子來表示1和0。把光放大了1000萬倍看看,上面都是長點和短點,用鐳射頭一照,根據反光的長度來表示資料。
光碟二進位制構成示意圖
那資料多了怎麼辦?8個編成一組,叫1byte,也就是傳說中的1個位元組,是由8個0或1組成的,每個0或1叫1bit。通常,一個英文字母需要8個燈泡表示,一個漢字需要16個燈泡表示。
順便說一下,一下能讓我看清8個燈泡亮沒亮的方法,叫“並行”(8位),用1個燈泡來回開關,妄圖晃瞎我的傳遞資料的方法叫“序列”,也就是一串訊號的意思。所以,頻率相同的情況下,“並行”肯定比“序列”快。
想一次能處理的資訊越多,就需要越多的“位”數,比如你家CPU是64位的,就相當於一次能傳遞64個燈泡組成的資訊。
先講這麼多吧,中心思想只有一個“技術課講的好,也很有意思!”
感謝關注我們,一起學習,一起成長!