为什么二维码这么神奇,扫一下就能得到各种信息?二维码是怎么被手机识别的?码上的黑点和白点又代表什么?

不管是手机还是计算机,它们的处理器只能识别0和1。为了让机器能够识别信息,需要对单个数字、字母、符号、汉字等进行逐一编码,它们都能用0和1来表示。

在制作二维码时,信息被转换成特定的0和1二进制编码,然后用白点表示0,用黑点表示1,它们按照一定的规则进行排列。再加上三个用于定位的大黑块,就能得到最终的唯一二维码。

简单说,二维码就是把你想表达的信息,翻译成黑白两种小方块,然后填到一个大方块中。有点类似考试时的答题卡,把我们的语言,翻译成机器可识别的语言。一个0就是一个白色小方块,一个1就是一个黑色小方块。所以说,在计算机眼里,二维码就是1和0的排列组合。

二维码图像复杂,很少有人去特意比对两个不同二维码的图案,这就牵扯到一个问题:二维码会重复吗?答案是:并不会!因为二维码是一种编码,是根据你提供的信息所生成,因此你生成二维码时使用的信息不同,最终出现的二维码也不会相同。

我们知道,一个随机的二维码出现,如果长时间不扫就会失效,需要系统重新分配一个,那么,二维码的排列就这么多种,会不会有一天被扫光?

专家表示,二维码的确有一天会被扫光,因为所有的二维码尺寸是固定的,在有限的区域内,要呈现出不同的排列组合,数量肯定有限制,不过按照数学概率,要一一扫光,需要很长很长时间。

现在的二维码有40个官方版本,最小为21×21、最大为177×177矩阵。其中,微信名片就是37×37的矩阵规格,微信付款码是25×25的矩阵规格。为方便理解,我们用方块作为矩阵单位。

如何计算矩阵中生成的二维码个数?举个例子:一个四宫格,每个格子有两种颜色变化。一个格子两种颜色,那就是两种可能,两个格子就是四种可能,三个格子就是8种可能,四个格子就是16种可能。所以,四宫格能够组成16个图形。

以此类推:25×25的微信付款码,每一排有25个方块,共25列,除去定位用的方块和冗余纠错的方块等,还剩下478个方块。按照二进制,每个方块只有黑或白两种选择,所以478个小方块,理论上一共可以组合“2的478次方”个二维码。

微信用掉25×25这一尺寸的二维码需要多少年?假设微信一年会用掉6000亿个二维码。我们来算一下:(2的478次方)/6000亿=1.301×(10的132次方)年,那简直是一个惊人的天文数字。

推荐内容