别说二维码被消耗了,二维码的原理你应该了解后再说。

​最近总是看到好多人的假设,二维码每天被消耗一百亿会不会被消耗完?

​其实我感觉二维码的使用,不应该用消耗这个词来表示,二维码不是一个专属id等,他只是对字符串进行翻译的过程,因此同一个字符串在不同人的手中仍然是一样的码。下面让我们了解一下二维码的简单原理。

​在二维码上面,白色小方块对应的就是0,1对应的就是黑色小方块。与之对应的就是现在手机、计算机等电子设备的二进制的0和1。当二维码进行生成和读取时,通过颜色反差读取到二维码上的01顺序,之后通过数字、字节、特殊字符、混合编码、汉字编码等来将二进制进行转为我们可以认识的字符。

别说二维码被消耗了,二维码的原理你应该了解后再说。

二维码分布


​二维码MAC地址,分配到设备上就是你这个设备专属的,永远只属于你一个的。例如:我创建一个二维码,二维码内容是123,远在天南海北的你,创建一个二维码的内容也是123,只要我们的纠错程度、二维码的版本一样,那么你生成的二维码和我生成的二维码就是一样的。也就是说二维码是可重复的,并不是你生成了这个样式的,别人下次生成和你一样的内二维码就变化了。

别说二维码被消耗了,二维码的原理你应该了解后再说。

二维码结构

​上图为21x21二维码样式,黑白块为定位基准,黄色的方块为储存信息区域,只有黄色的才能将你的字符串经过转为二进制之后进行储存。


​这里引用搜狐的一个分析,以25x25矩阵的付款码举例,除去定位用的大方块和限制区域,能代表信息的还有 478 个小方块,所以可以表示的二进制的形式2^478个二维码,只要你的输入的文字数目包括在那么可用二进制表示的字节里边,无论你存什么,他都能表示出来。但是哪怕你多一个字节,他也是表示不出来的。

​一个版本的二维码个数是一定的,你的文本生成生成二维码只是从一个版本中所有二维码里中间选出能表示出你内容的二维码。所以来说不存在什么消耗。唯一的消耗,也就是如果25x25的阵列中的字节数小于你的字符串的字节数,那么就需要更高版本的二维码29x29或者更高,最多到177x177。

​我们平时一扫二维码存在跳转或者同一个码在不同的应用打开却是不用的页面,原因是因为那些是扫码器的对扫码获取的内容进行理解和翻译,例如扫到的url他就会自动帮你打开网页。这并不是二维码的去指示它去做,二维码只是储存内容罢了。

​现在我们广泛使用的是QR码,由日本进行研发,中国人现在也开发了自己的二维码是汉信码和QR码不同,但是相似,原理基本都类似。大家有兴趣可以去查看一下。下图为汉信码的样式。

别说二维码被消耗了,二维码的原理你应该了解后再说。

汉信码


本文如有错误还请批评指教,谢谢读者。


分享到:


相關文章: