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