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

Thumb
五取二码(非交叉)
Thumb
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的方式:

More information 数字, 电信 01236 ...
数字 电信
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
Close

校验

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

参见

参考资料

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.