如果你错过了煎蛋这篇:学会条码,在它被遗弃之前,不要紧,你依然可以通过阅读本文快速掌握人眼扫描、解码,从而破解出这些粗细条条蕴含的深刻含义的高科技技能。
条形码的意义
按照八股论文的写法,我应该先介绍下条形码的NB之处,以提醒读者此刻正在阅读一篇有着深刻含义的文章。
2009年10月7日,Google 为了纪念1952年10月7日条形码 (Bar Code) 成功申请专利(专利号为2612994),首页 Logo 都改成了条形码。这个日子恰好与高锟、乔治·史密斯、威拉德·波义耳被授予诺贝尔物理学奖的时间重叠在一起,而他们发明的"电荷耦合器件"在用于扫读条形码的方面作出了贡献。
为了继承这宝贵的文化遗产,应对外星人入侵地球导致所有条码扫描仪都失效的情况,我们必须学习条形码!当然,某些三俗的读者可能觉得"在MM面前显摆才是真正的目的"。
准备工作
对正常人来说,只要能看见东西就行。
如果你有条码扫描仪,可以用来通过扫描实物来做练习。不要问:"我都有扫描仪了还学什么?"这种弱智问题。
条码介绍
所谓万变不离其宗,下面介绍的是通用的 Code 39。条条们分为四种:细细的白条、粗粗的白条、细细的黑条、粗粗的黑条。它们分别代表条码中所用的四个符号:空格、破折号、0和1。对应关系如下:
- 细白:空格
- 粗白:破折号
- 细黑:0
- 粗黑:1
也就是说,粗细不等的黑条表达了主要的编码,白条则表达分隔符。注意到,空格的含义并不是指编码中的空格,而是要分离相邻的两个黑条。破折号不仅可以分离相邻的黑条,还可以表达破折号的含义...
题目:阅读下面的条形码,写出它代表的二进制编码。
答案是:0-0110|10-
那么这堆数字表示什么含义呢?就要熟记下面的编码含义了:
- * = 0-0110
- 0 = 00-110
- 1 = 10-001
- 2 = 01-001
- 3 = 11-000
- 4 = 00-101
- 5 = 10-100
- 6 = 01-100
- 7 = 00-011
- 8 = 10-010
- 9 = 01-010
于是,上面的条形码表达的编码含义为:*8675309
更多技巧
有同学立刻提问,那个星号是什么意思。在正规的 Code 39 中,开头都有一个"*",它的作用和男人的乳头是一样的(亦即区分正反面...煎蛋怎么这么邪恶)。
又有同学说了,阅读出 01 串比较简单,怎么跟数字对应上呢?这叫涉及到当初设计条形码编码时的高深理论了:我们可以看到,每一个条形码如果表达的含义是数字,则它是形如:ab-cde 的形式。
- e 是奇偶校验用的,无视。
- 有两个1和三个0。
- 左边四位按照逆序排列dcba,其值是:1-6、8-10、12,分别对应真实数字中的:1-6、7-9、0。
- 为何跳过7和11?是为了校验方便,避免出现三个1的情况。
更多疑问
感谢坚持阅读到这里,您可能会有疑问:"知道了数字,我还是不知道有什么用啊?怎么知道定价呢?"这很简单,只要你能连上商场超市的数据库,查询对应条码即可。至于怎么连上数据库,就是另外一个问题了。
也有同学对本文表达质疑:"现在条形码下面似乎都有数字啊"。我想说,怎么这么死脑筋,难道不会把数字挡住,然后对身边的MM(不排除是GG)说:"你看,我不看下面的数字也能说出下面的数字!厉害吧!"。
更多链接
还是来调戏mm的......
发表评论