跳至內容

五取二碼

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
五取二碼(非交叉)
POSTNET條碼

五取二碼(英語:two-out-of-five code),又稱標準25碼,是一種恆重碼英語constant-weight code,恰好提供了兩位元的十種可能組合,常使用五位元來表示數字[1]每一個位元都分配了一個權重,所有位元相加就得到了預期的值,而0除外。

編碼標準

根據美國聯邦標準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).