二維碼是什麼原理
不知道從什麼時候開始,我們的生活突然之間就充滿了二維碼——看網頁要掃二維碼,加好友要掃二維碼,現在連樓下賣草莓的大爺都支持掃碼支付了。
那麼你有沒有想過,這個長得很奇怪的東西,到底是怎麼來的?二維碼,到底是什麼原理呢?
==================================================================
其實在我們介紹二維碼的原理之前,你可能已經猜到了,二維碼就是把信息翻譯成黑白小方塊,然後填到這個大方塊里。
這有點類似於中學考試中用的答題卡,就是把信息變成機器可掃描的圖案,一秒鐘就能知道你得了多少分。當然,二維碼的原理和答題卡還不太一樣,這個我們稍後會講到。
我們先來介紹二維碼的哥哥——條形碼,也就是超市收銀員掃的那個黑白條。電腦在水平方向上識別粗細不均的黑白條,就能找出藏在其中的商品編號信息。
相比於只在一個維度上攜帶信息的條形碼, 「二維碼」在水平、垂直兩個維度上,都攜帶了信息,也就做成了這個方塊狀的樣子。
條形碼和二維碼這一對好兄弟,說白了,其實就是給數字、字母、符號等這些字元,換了一身衣服,把它們打扮成了能被手機相機識別的黑白條或塊。
那麼,最關鍵的問題來了,這些字元,到底是怎麼變成這種二維碼圖案的呢?
這就要提到一個人類具有劃時代意義的偉大發明:二進位。
我們平時使用的數字、字母、漢字等各種字元,雖然畫風完全不同,但是機智的人類,發明了一個方法,使它們都可以被統一轉換成由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?
※錄音的時候,如果周圍沒有聲音,為什麼還會佔存儲空間?