美文网首页互联网科技
趣知识:二维码为何损毁一部分也能扫描(前)

趣知识:二维码为何损毁一部分也能扫描(前)

作者: 张予涵 | 来源:发表于2020-05-20 18:10 被阅读0次

    作者的前言

    大家好啊,欢迎进入我的文章啊。今天开了个新坑:趣知识

    好久没有更新文章,昨天打开简书才发现,我涨粉了。

    我也算个简书的新人,距离上上个文章更新也是2019年了。

    希望大家给我一个鼓励,求看完,求评论。

    就这些,进入正题吧!

    正文:二维码的前身——条形码

    首先你至少要知道这些码的都表示二进制数(0与1),这些二进制数在扫描时会转换成字符串。另外,里面的竖线表示1,空白表示0。

    竖线和空白都有 4 种宽度。最细的竖线代表一个 1,之后是两个 1,三个 1,最粗的竖线就是 4 个 1。对应的,4 种间隔宽度就是 0、00、000、0000。

    每 2 条竖线加 2 条间隔就能表示一个数字,条形码的 48 条竖线和间隔就可以表示 12 位数字编号了。

    而所有条形码都有一个启示码和终止码,它们都是一条竖线加一条空白加一条竖线(101)。它们有什么用呢?它可以确定条形码的最细宽度(确定一个1或一个0的长度是多宽),这样你把码打印成多大、多小,机器都能知道你扫描的数据。

    如果扫反了怎么办?其实除了固定的启示码和终止码,还有一个组合是固定的,哪就是在中间的中间码,即01010。我们把中间码左侧的竖线里表里的白色变成黑色、黑色变成白色,放在分隔符右侧的编码。巧妙的地方在于,左侧所有组合里黑色的个数都是奇数 ,而右侧都是偶数。

    这样,扫码器从左往右读取数据时只要发现一组数据里的 1 是偶数,那么就可以确认扫反了。用逆码表解读数字,再重新组合,就能得到正确编号。

    最后,第十二位是根据前 11 位数计算出来的校验码,防止因为污渍而扫描成别的信息。

    校验码公式:

    回顾一下这种设计的好处:

    1.起始码确定了最细宽度

    2.中间码、把左边相反的数放到右边的组合防止了扫反的问题

    3.校验码说明了数据无错

    虽然这三重设计保证了条形码可以适应各种复杂的现实情况,非常可靠。但是它承载的信息太少,只能存储固定格式的数据,而且弄上了污渍只能检测出来,不能知道弄上污渍前的数据。毕竟超市的收银员如果发现数据错误,也会自己手动输物品编码(一般条形码下面都会打印物品编码),这种码运用的领域只能是超市,所以就出现了二维码。

    附件:条形码的结构表

    条形码结构表

    作者的后言

    感谢你能看到这里,如果觉得文章不错请看官们给个关注、给个赞,谢谢!

    看官们一个举动,都是我们最大的动力!

    下期预告

    趣知识:二维码为何损毁一部分也能扫描(一)

    QR二维码校验码大升级、更厉害的位置确定系统,让我们一起来看看!

    相关文章

      网友评论

        本文标题:趣知识:二维码为何损毁一部分也能扫描(前)

        本文链接:https://www.haomeiwen.com/subject/fjmnohtx.html