二維碼是什麼原理

不知道從什麼時候開始,我們的生活突然之間就充滿了二維碼——看網頁要掃二維碼,加好友要掃二維碼,現在連樓下賣草莓的大爺都支持掃碼支付了。

那麼有沒有想過,這個長得很奇怪的東西,到底是怎麼來的?二維碼到底是什麼原理

==================================================================

其實在我們介紹二維碼的原理之前,你可能已經猜到了,二維碼就是把信息翻譯成黑白方塊然後填到這個大方塊里。

這有點類似於中學考試中用的答題卡,就是把信息變成機器可掃描的圖案一秒鐘就能知道你得了多少分。當然,二維碼的原理和答題卡還不太一樣,這個我們稍後會講到

我們先來介紹二維碼的哥哥——條形碼也就是超市收銀員掃的那個黑白條。電腦在水平方向上識別粗細不均的黑白條,就能找出藏在其中的商品編號信息。

相比於只在一個維度上攜帶信息的條形碼, 「二維碼」在水平、垂直兩個維度上,都攜帶了信息也就做成了這個方塊狀的樣子。

條形碼二維碼這一對好兄弟,說白了,其實就給數字、字母、符號等這些字元換了一身衣服,把它們打扮成了能被手機相機識別的黑白條或塊

那麼,最關鍵的問題來了,這些字元,到底是怎麼變成這種二維碼圖案的呢

這就要提到一個人類具有劃時代意義的偉大發明:二進位

我們平時使用的數字、字母、漢字等各種字元雖然畫風完全不同是機智的人類,發明了一個方法,使它們都可以被統一轉換成由0和1組成的二進位數字序列。

這個轉換的過程叫做編碼。國際上有幾套通用的編碼規則,我們今天就用一個例子來感受一下,編碼是怎麼回事(字幕QR碼通用編碼規則 ISO18004)。

比如AB這兩個英文字母組成的字元

根據編碼規則,每獨立英文字母都有唯一一個十進位數字與之對應(畫表)。

AB這樣的字元串,則要在對應數字的基礎上再做運算。,

而運算結果再轉化成二進位,就這一串數字。

對了,整個計算機互聯網文明,都是建立在這種二進位編碼上。你現在看的這個視頻,在你手機里,其實也只是一串0和1而已。

-====================================================-

我們回到二維碼原理上。字元在變成只有0和1組成的數字序列進行一系列優化演算法,就得到了最終的二進位編碼

最後這串編碼中,一個0對應的就是一個色小方塊一個1對應的就是一個黑色小方塊我們把這些小方塊,按照8個一組,填進大方塊里,這就是一個完整的可以被手機相機識別的二維碼圖案

囧知道 (二維碼自動識別)

這就是二維碼的基本原理。

如果你要問,為什麼所有二維碼都有這三個方塊,其實三個一模一樣的方塊,是用來給手機相機定位的。不信你就試著掃一下,是不是不管正著掃,倒著掃,還是斜著掃,掃出來的結果都是一樣的?

囧知道 (二維碼自動識別)

【囧知】科普:二維碼是什麼原理 - 騰訊視頻 https://v.qq.com/x/page/s03139rqfmp.html


推薦閱讀:

十分鐘 | 計算機硬體及組成原理(三)
二進位里根本沒有 2 這個字元,那麼它是不是應該叫做 10 進位?
如果從小隻學二進位會怎麼樣?
如何區別二進位32個1表示-1,還是4294967295?
錄音的時候,如果周圍沒有聲音,為什麼還會佔存儲空間?

TAG:二维码 | 二进制 |