分享

二维码的原理是什么?

 sos天外飞仙 2018-09-09

蚂蚁科学

二维码这么火,它的原理是什么?

谈起二维码,我们很容易联想到条形码(一维码),没错,就是在超市买东西的时候每个商品后面的那个条形码。或者是你拿快递时,快递单上的码。

不论是二维码还是条形码,其目的,就是为了表示产品的信息(编号、图片、网站链接等),方便电脑识别,从而提高效率。

如果要让计算机识别,那么势必要使用计算机的语言:二进制。

生活中我们常用的是十进制,有0,1,2,3,4,5,6,7,8,9十个数,而二进制则只有0,1两个数。

(比如,二进制的110,就是十进制的 0*2^0+1*2^1+1*2^2=6 )

如果此时你细心地观察二维码,你会发现,它是由白块和黑块组成的。

看到这里可能已经发现了一点端倪,没错,白块表示的就是二进制的“0”,黑块就是“1”。

但是,很快我们就会有问题,表示数字可以,那么如果我们要表示字母怎么表示?

简单呀,每个字母有一个对应的数字就行了呀。

于是,ASCII代码产生了(American Standard Code for Information Interchange,美国信息交换标准代码)。本来它是美国的标准,后来被定为世界标准。

以下是部分ASCII代码:

还有其他的特殊符号比如 @、#、¥等也有自己的对应的二级制数字对应。

当然,二维码有很多种类,生活中常见的便是QRcode。

而QR码上,不同的区域,则表示着不同的信息。(如下图)

此处,并不是简单地直接将信息转换为前面ASCII码值,然后“0”和“1”对应黑块白块直接填到二维码中。

不同的编码方式,有着自己不同的规则。

例如:

一个QRcode下编码一段数字。

在数字模式下,(数字模式指示符符为0001)

对数据:01234567编码(版本1-H),

1)分组:012 345 67 (每三个数字一组)

2)转成二进制:

012→0000001100 ;345→0101011001 ;67 →1000011。

3)转成序列:0000001100 0101011001 1000011

4)字符的数量8个,8转化为二进制0000001000,(实际上是1000,前面为了满足格式而添加了0)

5)加入模式指示符)0001:

最终编码0001 0000001000 0000001100 0101011001 1000011

其他的区域,有关QR码版本、格式等信息,以类似的方式编码,然后填到了二维码中。(当然,不同种类的二维码,其编码方式,图形中的组合排列方式便不尽相同)

至于二维码中的位置探测图形,其实是为了让手机(或是其他扫描仪器)确定方位用的。扫描的仪器会自动地左上角,右上角,左下角的图案,从而自动地将二维码“摆正”。

这样的话,即使你倒着、侧着、或是斜着扫二维码,都能扫描成功。

综上,二维码,就是产品信息在通过各类编码后,通过特定的排列方式以“0”对应白块,“1”对应黑块展示出来的图形。

更多科普,来蚂蚁科学。

微博、微信、头条......都能找到

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多