三百零八节 卡片标准(2 / 3)

临高启明 吹牛者 2585 字 3个月前

毫米。同一横行上各代码孔的最小边缘距离应大于0.51毫米,孔中心线与行列标准线误差小于0.25毫米。”

会场一片安静,与会者大概都在怀疑他们能否造出读取和打孔这么精密卡片的设备来。而冯诺想的则是忘了把造纸厂的人请来参加讨论,眼下能否造出合乎规格的纸来都十分难说,想爬个科技树,步步都是坑啊,千头万绪。不过他早有准备,继续说道:

“这是70年代末期国内发布的穿孔卡片标准,其制造精度当然是为了满足穿孔卡计算机系统当时每分钟1000张到2000张卡片处理速度的要求来制订的。我们手里目前没有穿孔卡计算机系统早期的卡片标准,不过可以肯定,20世纪初的技术达不到这样的精度标准,实际上,一则50年代的资料中,穿孔卡的尺寸被简单介绍为18.6厘米x8.3厘米。因此,适用于我们自制设备的穿孔卡精度及误差标准,还有待于在开发中进一步摸索。”

“穿孔卡的每一列可用来记录一个字符,包括从0到9的数字和26个英文字母,以及若干种符号,如等号,百分号等。每列记录一个字符,整个卡片共可以记录80个字符。”

“字符通过打孔实现,某列如果要表达一个数字,直接在第0行到第9行的对应行穿孔。如果某列要表达一个英文字母,则需要高区和数字区同时打孔。通常顶端还会印制该列的取值作为参考,具体方案请大家翻到资料附录2。”

穿孔卡片的每一列都能够存储1个英文字母,其方案为: 121 A 111 J 01 / 122 B 112 K 02 S 123 C 113 L 03 T 124 D 114 M 04 U 125 E 115 N 05 V 126 F 116 O 06 127 G 117 P 07 X 128 H 118 Q 08 Y 129 I 119 R 09 Z

“三行区上打孔,搭配19数字行打孔,共有3x927中方案,除去01位置表示特殊符号‘斜线’,刚好能表示26个字母。有意思的是,之所以用01表示斜线,则是因为整个方案中,就只有这个编码两个孔的距离最近,技术实现难度较大。此外,其他的特殊符号则可以用每列穿3个孔的若干方案解决。霍勒里思代码里仅用了8号孔作为搭配的孔,但这同时也揭示了,3孔编码在技术上是可能的。”

“之所以提到3孔编码,是考虑到中文编码的问题。”

这时会场出现了不少窃窃私语的声音。中文的编码是元老院应用穿孔卡的一大问题。当年穿孔卡计算机没有在国内自行生产,用途也不广泛,实际并无标准的中文编码方法。

穿孔卡比起元老们熟知的数据存储载体,容量实在小得可怜,每张18.7x8.3的卡片只能存80个字符,还只是英文字母。如果要是政府或者商务的业务处理也就罢了,大不了多用标准编号,比如几年前司凯德和洪璜楠力推的国家标准代码体系,终于有了用武之地。

仅就眼下人口普查的需求来说,性别、籍贯、出生地、出生时间、现居所、文化水平、家庭成分等问题其实都可以很容易地通过编码解决,过去18位身份证上面仅用了6位就表示了全国每个人的出生地。原因很简单,命中每一个编码的人都很多,编制编码表是合适的。学过数据库的人画个ER图就很容易发现本来就应该这么做。但是唯有一个字段,就是姓名,永远也绕不过中文编码的问题。人口普查表各字段的具体设计工作可以丢给民生省的人,可是这中文编码必须现在解决。

“其实中文编码问题不难解决,问题是占用空间太大。”

“1980年颁布的《信息交换用汉字编码字符集》,通称GB2312编码,不仅仅规定了汉字在计算机上