五取二碼
五取二碼(英語:two-out-of-five code),又稱標準25碼,是一種恆重碼,恰好提供了兩比特的十種可能組合,常使用五比特來表示數字。[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 7072和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)。這種方法同樣也在北美電話多頻信令和交叉開關系統中使用。[5]
郵政總局的郵政文數編碼方法(PLANET)也使用了同樣的權重,但所用條的高度則是相反的。[6]
Code39條碼使用了1-2-4-7-0的權重(即最低有效位最先,奇偶校驗位最後),並用條的寬度表示,但該條碼還在條的間距中編碼了兩位額外的信息。對於數字編碼,使用|| ||||間距(即0100)。[7][8]
下表展示了使用不同五取二碼系統編碼數字0-9的方式:
校驗
必須設置兩個比特位的要求比奇偶校驗更嚴格;與所有恆重碼一樣,五取二碼不僅可以檢測到任何單比特錯誤,還可以檢測到任何單向錯誤——即所有單個比特錯誤都是單一類型的情況(全部是0→1或全部是1→0)。
參見
參考資料
- ^ 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).)
- ^ 本條目引用的公有領域材料來自General Services Administration的文檔《Federal Standard 1037C》。
- ^ Svigals, J. IBM 7070 data processing system. ACM Press. 1959. doi:10.1145/1457838.1457879 (英語).
- ^ 7070 Data Processing System Reference Manual (PDF). bitsavers.informatik.uni-stuttgart.de. [2024-07-17] (英語).
- ^ Vintage Telephone Equipment Museum — XBR #5 MTF Relay Equip. SimpleThinking.com. (原始內容存檔於2006-03-16) (英語).
- ^ PLANET Barcode. www.neodynamic.com. [2024-07-19] (英語).
- ^ CODE 39 and Codabar. www.keyence.com. [2024-07-19] (英語).
- ^ MIL-STD-1189 Standard Department of Defense Barcode Symbology (PDF). 1989-08-10 [2024-06-30]. (原始內容存檔 (PDF)於2024-07-01).