超市售货员扫一下条形码就能结账?为什么别人扫一下你的二维码就能加上你的微信?小小的条形码、二维码中究竟如何蕴藏如此多不同的信息?
现在我们购买到的大多数商品,包装上面都有条形码 。条形码初期存在多个发明,现在也存在非常多的变种 。条形码可以算是和摩尔斯电码沾点边,因为早期的一位发明家曾经受到过摩尔斯电码的启示 。确实,从某种意义上说,我们可以想象把摩尔斯电码的点和划,垂直画成线,变成窄和宽的条纹 。当然现在主流应用上的条形码,并不是简单地从摩尔斯电码转换来的 。
条形码世界
今天,计算机越来越多地参与着我们生活的方方面面 。为了把信息迅速方便地送入计算机,人们设计了各种各样的编码,条形码就是其中的一种 。其他的编码方法,比如RFID,尽管成本越来越低,但相比之下,条形码仍然是最便宜的,其成本几乎为零,因为条形码只需要用油墨印在包装盒上即可 。
条形码是怎样将信息编码的呢?对于不同的应用存在许多标准 。我们这里介绍一下其中一个标准,即GTIN-13以及它所对应的条形码编码标准EAN-13 。GTIN是Global TradeItem Number的意思,其中的GTIN-13标准是用13位数字代表全球贸易中的万物 。其中最高的三位代表生产物品的国家,比如中国生产的产品前三位是690-695 。其余一些位数表示地域,行业等信息,靠后的一些位数是物品的代码 。如果13位数全部用满,可以表述10万亿种不同的物品,足够全球所有人每人研发1000种不同的商品 。
我们现在在市场上买到的商品,大部分都有这样一个13位数的代码 。GTIN兼容了国际标准书号(ISBN),国际标准期刊序号(ISSN)等等 。当GTIN-13需要印刷成条形码的时候,使用的是EAN-13条形码标准 。
比如作者参与写作的一本科学普及书的条形码,如下图所示 。对于图书,不管是哪个国家出版的,其前三位都被指定为978或979 。而杂志期刊等,前三位总是977 。
文章插图
大家可以仔细观察上面的条形码,我们可以看到数字5出现了几次,不过它们似乎长的不完全一样,在左边的两个是一个样,而在右边的两个显然不同 。如果认真看看,左边与右边条纹是“黑白颠倒”的关系 。可是,再看看左边出现的两个7,它们似乎也不一样 。此外,在条形码左边与右边各有6位数字,这并不难理解,但整个码符号的最左边那个9是怎么来的?难道可以无中生有吗?
为此,我们需要了解一下EAN-13(包括ISBN,ISSN,UPC等)条形码的生成规则 。
条形码的编码规则
EAN-13条形码是用两个条纹来表示一个数字的,整个码包括13个数字,其中直接编码12个,左边6个右边6个,第13个用后面介绍的方法隐含编码 。条形码两边与中间安排了起始符(S)中间符(M)以及结束符(E),各为两个窄条 。因此,所有码,不管具体数字是什么,都包含有30个条纹 。
那么,每个数字又是怎样用两个条纹表示的呢?这就需要我们在更细尺度上讨论 。每个数字的两个条纹,包括了两黑两白四个区域,它们的总宽度为7个单位宽度 。这个单位宽度可以根据印刷精度自由选择,比如当我们把单位宽度选定为0.5毫米时,每个数字所占宽度为3.5毫米 。
对于左边6个数字,每个数字的左边一定是白的,而右边一定是黑的 。每个数字从左到右都是“白黑白黑”地构造 。这样,当几个数字一个个紧挨在一起的时候,它们之间就可以存在一个清晰的边界 。
了解了这些,我们就可以想象自己是当年制定这种条形码的设计师,很容易地数一数可用的编码有哪些 。
我们可以把7个单位宽度组合在一起,看成7个比特的二进制数 。如果这7个比特可以任意安排黑白,则可以表达128个字符 。不过我们已经限定最左边一定是白色,最右边一定是黑色,这样就只有中间5个比特可以改变,或者说最多可以表达32个字符 。把这32个可能的字符全部画出来,就得到下面这个图 。
文章插图
现在,我们把不符合“白黑白黑”要求的字符去掉,还剩下20个可用的字符 。这20个字符又可以分成两类,一类包含有奇数个(3个或5个)单位宽度为黑,共10个,另一类包含有偶数个(2个或4个)单位宽度为黑,也是共有10个 。我们把这两类字符分别用来作为0-9数字的代码 。其中奇偶性为奇的10个称为EAN-L码,在上面图中用浅棕色标注 。奇偶性为偶地10个称为EAN-G码,在上面图中用浅绿色标注 。这两种左边的条形码如下图所示 。
- sai软件的用法 sai软件基本使用方法
- 音乐剪辑视频的软件哪个好 好用的音乐视频剪辑软件推荐
- 空气能热水器好嘛 空气能热水器家用好不好
- 如何用手机转换mp4文件 如何用手机转换mp4
- 食醋十大烹饪妙用 让身体棒棒的
- 怎么选购好香蕉的方法:眼看手握
- 微信老是出来悬浮窗囗怎么关闭
- 夏天吃辣椒有什么好处怎么吃才能不上火不长痘
- 微信里的服务通知没有了怎么办
- 头痒头皮屑多怎么除根 头屑多是什么原因