博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 二維碼你天天都在用,你知道原理嗎?

二維碼你天天都在用,你知道原理嗎?

發(fā)布人:電巢 時(shí)間:2022-11-29 來(lái)源:工程師 發(fā)布文章
image.png


不知道從什么時(shí)候開(kāi)始,我們的生活突然之間就充滿(mǎn)了二維碼,看網(wǎng)頁(yè)要掃二維碼,加好友要掃二維碼,現(xiàn)在連樓下賣(mài)草莓的大爺都支持掃碼支付了。 那么你有沒(méi)有想過(guò)這個(gè)長(zhǎng)得很奇怪的東西到底是怎么來(lái)的?二維碼到底是什么原理呢?


二維碼,就是把信息翻譯成黑白小方塊,然后填到大方塊里。這有點(diǎn)類(lèi)似于中學(xué)考試中用的答題卡。 就是把信息變成機(jī)器可掃描的圖案。當(dāng)然二維碼的原理和答題卡還不太一樣。

image.png


我們先來(lái)介紹二維碼的哥哥條形碼,也就是超市收銀員掃的那個(gè)黑白條,電腦在水平方向上識(shí)別粗細(xì)不均的黑白條,就能找出藏在其中的商品編號(hào)信息。


相比只在一個(gè)維度上,攜帶信息的條形碼,二維碼在水平垂直兩個(gè)維度上都攜帶了信 字母、符號(hào)等這些字符,換了一身衣服,把它們打扮成了能被手機(jī)相機(jī)識(shí)別的黑白條或塊。那么最關(guān)鍵的問(wèn)題來(lái)了,這些字符到底是怎么變成這種二維碼圖案的呢?這就要提到一個(gè)人類(lèi)具有劃時(shí)代意義的偉****明---二進(jìn)制。 我們平時(shí)使用的數(shù)字、字母、漢字等各種字符,雖然畫(huà)風(fēng)完全不同,但是機(jī)智的人類(lèi)發(fā)明了一個(gè)方法,使它們都可以被統(tǒng)一轉(zhuǎn)換成由0和1組成的二進(jìn)制數(shù)字序列。這個(gè)轉(zhuǎn)換的過(guò)程叫做編碼。國(guó)際上有幾套通用的編碼規(guī)則。

今天就用一個(gè)例子來(lái)感受一下編碼是怎么回事兒。比如AB這個(gè)由兩個(gè)英文字母組成的字符。 根據(jù)編碼規(guī)則,每一個(gè)獨(dú)立的英文字母都有唯一的一個(gè)十進(jìn)制數(shù)字與之對(duì)應(yīng)。而像【AB】 這樣的字符串,只要在對(duì)應(yīng)數(shù)字的基礎(chǔ)上再做運(yùn)算, 把運(yùn)算結(jié)果再轉(zhuǎn)化成二進(jìn)制,整個(gè)計(jì)算機(jī)和互聯(lián)網(wǎng)文明都是建立在這種二進(jìn)制編碼上的。你現(xiàn)在看的視頻,在你的手機(jī)里其實(shí)也只是一串0和1而已。

我們回到二維碼的生成原理上,字符再變成只有零和一組成的數(shù)字序列后,再進(jìn)行一系列優(yōu)化算法,就得到了最終的二進(jìn)制編碼。 在最后這串編碼中,一個(gè)0對(duì)應(yīng)的就是一個(gè)白色小方塊,一個(gè)1對(duì)應(yīng)的就是一個(gè)黑色小方塊。我們把這些小方塊按照八個(gè)一組填進(jìn)大方塊里。這就是一個(gè)完整的可以被手機(jī)相機(jī)識(shí)別的二維碼圖案了。


我們看到二維碼上都有三個(gè)固定的大方塊,這個(gè)其實(shí)是用來(lái)給二維碼定位的,這樣,不論你在哪個(gè)方向上掃描二維碼,得到的信息都是一樣的。

image.png


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: 二維碼 原理

相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉