嚴(yán)伯鈞
二維碼現(xiàn)在存在于我們生活中的方方面面,微信和QQ加好友可以掃二維碼,收付款可以用二維碼,取電影票可以用二維碼。但你知道二維碼的原理是什么嗎?為什么二維碼只有三個(gè)角有小方塊,而不是四個(gè)角都有小方塊呢?當(dāng)然,現(xiàn)在的二維碼形態(tài)多種多樣,未必都是方形,也有圓形的二維碼,但它只要是二維的,其工作原理都是類似的。
其實(shí)不管是二維碼,還是超市里商品上的條形碼,它們的工作原理都跟你考試填的答題卡是類似的。電腦能夠理解的信號都是二進(jìn)制信號,也就是電腦只認(rèn)識0和1兩個(gè)信號。但是現(xiàn)實(shí)生活中的信息多種多樣,我們要怎樣讓電腦只通過二進(jìn)制信號,就能處理那么復(fù)雜的信息呢?這里就涉及二進(jìn)制信號和其他信號的轉(zhuǎn)換問題。首先要理解二進(jìn)制,二進(jìn)制就是“逢2進(jìn)1”。譬如1+1=2,但是在二進(jìn)制的情況下,2是不存在的,碰到2,就要進(jìn)一位,這就好像我們平時(shí)用的數(shù)學(xué)是十進(jìn)制,9加1就要進(jìn)一位變成10,而二進(jìn)制中,滿2就要進(jìn)一位,2用二進(jìn)制信號表示就是“10”。記住,這里的“10”不是“十”,而是“1”和“0”,那么3等于2+1,其實(shí)就是“10”+“1”就等于1 1。同樣地,這里的“1 1”不是“十一”,而是“1”和“1”。再進(jìn)一步,4要怎么用二進(jìn)制表示呢?4=3+1,那就是“1 1”+1等于“1”和“2”,對吧?但是2在二進(jìn)制的情況下又是“10”,所以4就是“20”,但是2用二進(jìn)制表示又是“10”,所以4用二進(jìn)制表示就是“100”,它不是“一百”,而是“1”和“0”和“0”。用這樣一套方法,我們就可以把各種各樣復(fù)雜的信號轉(zhuǎn)換為二進(jìn)制信號,讓電腦讀懂,并進(jìn)行處理。
二維碼其實(shí)就是把0和1的信號變成了小方格。在一個(gè)二維碼當(dāng)中,黑色的小方格代表1,白色的小方格代表0,手機(jī)一掃就知道一個(gè)二維碼里面的0跟1是怎么排列的了,二維碼本質(zhì)上就是給你手機(jī)里的計(jì)算芯片一串0和1的信號,手機(jī)接收到信號以后就開始運(yùn)算了。
二維碼里有三個(gè)小方塊是分布在三個(gè)角上的,這是幫助二維碼進(jìn)行定位的,不管你的手機(jī)是橫著掃、豎著掃,還是斜著掃,它都知道二維碼應(yīng)該從哪個(gè)方向開始讀。四個(gè)方塊反而不行,因?yàn)檫@樣的話,手機(jī)無法辨認(rèn)出這個(gè)二維碼從什么位置開始才是第一行。
其實(shí)在二維碼出現(xiàn)之前,我們常用的是條形碼,條形碼傳遞信息的原理跟二維碼是一樣的,那為什么不直接用條形碼而要更多地使用二維碼呢?因?yàn)闂l形碼的信息量有限,它只有一行,但是二維碼有很多行,所以二維碼傳遞的信息量更大。手機(jī)普及以后,網(wǎng)絡(luò)世界的信息越來越豐富,我們的手機(jī)要處理的網(wǎng)絡(luò)信息也越來越復(fù)雜,能夠傳遞更大信息量的二維碼,會更加貼合我們的數(shù)據(jù)需求,于是二維碼就變得越來越主流了。