Q740:  Baudot Data Communication Code 

資料在數位電腦間傳遞是一連串的位元. 為了確保一連串位元的意思,這些位元被編成一字元集或編碼表或轉換表格來確保電腦系統能有能力將這些位元轉換回字元.一個理想的編碼表將對於每個被存在電腦上用來溝通的字元提供一個獨一無二的編碼,但是每個字元需要有充足的位元來表示它.

一個編碼使用在早期的資料通訊產業就是Baudot編碼. Baudot編碼 每個字元使用5位元來編碼,它允許32個不同的字元.這技術突破它的限制被使用,這編碼使用up-shift和down-shift兩種狀態模式如同在使用打字機一樣.在Baudot編碼中,每5個位元必須被翻譯依據當時的狀態(有up-shifted和down-shifted兩狀態).舉個例子, 位元樣式11111表示切換成up-shift狀態而且位元樣式11011表示切換成down-shift狀態. 所有的字元翻譯在串列11111後和串列11011前是被當成 up-shift狀態時的字元.所有的字元翻譯在串列11011後和串列11111前是被當成 down-shift狀態時的字元.完整的BAUDOT 編碼顯示在題目後面的表格上.

Input 

這輸入由兩部份所組成.第一部份是Baudot字元集:第一行包含32個 down-shift 狀態的字元集,第二行包含32個up-shift狀態的字元集. (注意:空白代表shift字元.共有三個空白,依序是空白,Shift Down,Shift Up) 輸入檔剩下的部份為一行或多行的Baudot code訊息所組成.每個訊息在輸入檔中佔一行.每一行訊息由1或0所組成,這之中沒有其它字元.每個訊息最多有80位元.

這輸入將結束於檔案結尾.每個訊息一開始的狀態一定是down-shift狀態.

Output 

輸出由一行文字所組成,每行文字是由一個訊息產生.這些文字的字元表示是由 BAUDOT編碼所翻譯出來.

Sample Input 

<T*O HNM=LRGIPCVEZDBSYFXAWJ UQK 
>5@9 %,.+)4&80:;3"$?#6!/-2' 71( 
100100110011000010011111101110000111110111101
001100001101111001001111100001001100010001100110111100000111

Sample Output 

DIAL:911
NOV 5, 8AM
Bit Pattern Down-Shift Character Up-Shift Character
00000 < >
00001 T 5
00010 * @
00011 O 9
00100 Space Space
00101 H %
00110 N ,
00111 M .
01000 = +
01001 L )
01010 R 4
01011 G &
01100 I 8
01101 P 0
01110 C :
01111 V ;
10000 E 3
10001 Z "
10010 D $
10011 B ?
10100 S #
10101 Y 6
10110 F !
10111 X /
11000 A -
11001 W 2
11010 J '
11011 Shift Down Shift Down
11100 U 7
11101 Q 1
11110 K (
11111 Shift Up Shift Up

Table: The BAUDOT code


Translated by Yi-Min Lin (林逸民)