五取二码

五取二码(英语:two-out-of-five code),又称标准25码,是一种恒重码英语constant-weight code,恰好提供了两比特的十种可能组合,常使用五比特来表示数字[1]每一个比特都分配了一个权重,所有比特相加就得到了预期的值,而0除外。

五取二码(非交叉)
POSTNET条码

编码标准

根据美国联邦标准1037C

  • 每一位数字都应该都应该由五比特的二进制数表示,其中两比特为一种,被称为“一”(ones),另外三比特为另一种,被称为“零”(zeros),
  • 通常分配给每一位比特的权重是0-1-2-3-6。而在这种规则下,0被编码为01100;严格来说,之前规定的0-1-2-3-6只是一种助忆法[2]

在这样的权重下,对于绝大多数数字都只有唯一的编码方式,但是3却有两种:10010的0+3和01100的1+2。于是前者用于编码数字3,而后者则用于代表无法表示的0。

应用

IBM 7070英语IBM 7070IBM 7072英语IBM 7072IBM 7074英语IBM 7074电脑都使用这种编码。这类机器的每个共由10个数字和1个符号标识构成,数字的表示使用二取五码,并使用与电信标准相同的0-1-2-3-6权重。其中的符号标识使用三取二码编码,用来表示文数字(A)、负数(-)或正数(+);当被复制到某个数字上时,这三比特会被放置在第0、3、4位上(从而相对应产生了数字值3、6和9)。[3][4]

五取二码的一个变体是美国邮政总局POSTNET条形码,用于表示美国邮政编码,方便自动邮件排序和路径规划设备。该条码使用两条长条作为“一”,三条短条作为“零”。而每个比特的权重则是7-4-2-1-0。同样0是特别编码的,使用原本会产生11的7+4组合(即11000)。这种方法同样也在北美电话多频信令英语multi-frequency交叉开关英语Crossbar switch系统中使用。[5]

邮政总局的邮政文数编码方法英语Postal Alpha Numeric Encoding Technique(PLANET)也使用了同样的权重,但所用条的高度则是相反的。[6]

Code39条码使用了1-2-4-7-0的权重(即最低有效位最先,奇偶校验位最后),并用条的宽度表示,但该条码还在条的间距中编码了两位额外的信息。对于数字编码,使用|| ||||间距(即0100)。[7][8]

下表展示了使用不同五取二码系统编码数字0-9的方式:

数字 电信
01236
POSTNET
74210
PLANET Code39
条宽
12470
1 11000 00011   ┃┃┃╻╻ ▮ | | | ▮
2 10100 00101   ┃┃╻┃╻ | ▮ | | ▮
3 10010 00110   ┃┃╻╻┃ ▮ ▮ | | |
4 01010 01001   ┃╻┃┃╻ | | ▮ | ▮
5 00110 01010   ┃╻┃╻┃ ▮ | ▮ | |
6 10001 01100   ┃╻╻┃┃ | ▮ ▮ | |
7 01001 10001   ╻┃┃┃╻ | | | ▮ ▮
8 00101 10010   ╻┃┃╻┃ ▮ | | ▮ |
9 00011 10100   ╻┃╻┃┃ | ▮ | ▮ |
0 01100 11000   ╻╻┃┃┃ | | ▮ ▮ |
A 1––10 IBM 707x
符号标识
1––01
+ 0––11
数字 01236
IBM 707x

校验

必须设置两个比特位的要求比奇偶校验更严格;与所有恒重码英语constant-weight code一样,五取二码不仅可以检测到任何单比特错误,还可以检测到任何单向错误——即所有单个比特错误都是单一类型的情况(全部是0→1或全部是1→0)。

参见

参考资料

  1. ^ Military Handbook: Encoders - Shaft Angle To Digital (PDF). United States Department of Defense. 1991-09-30 [2020-07-25]. MIL-HDBK-231A. (原始内容存档 (PDF)于2020-07-25) (英语).  (NB. Supersedes MIL-HDBK-231(AS) (1970-07-01).)
  2. ^   本条目引用的公有领域材料来自General Services Administration的文档《Federal Standard 1037C》
  3. ^ Svigals, J. IBM 7070 data processing system. ACM Press. 1959. doi:10.1145/1457838.1457879 (英语). 
  4. ^ 7070 Data Processing System Reference Manual (PDF). bitsavers.informatik.uni-stuttgart.de. [2024-07-17] (英语). 
  5. ^ Vintage Telephone Equipment Museum — XBR #5 MTF Relay Equip. SimpleThinking.com. (原始内容存档于2006-03-16) (英语). 
  6. ^ PLANET Barcode. www.neodynamic.com. [2024-07-19] (英语). 
  7. ^ CODE 39 and Codabar. www.keyence.com. [2024-07-19] (英语). 
  8. ^ MIL-STD-1189 Standard Department of Defense Barcode Symbology (PDF). 1989-08-10 [2024-06-30]. (原始内容存档 (PDF)于2024-07-01).