第645章 三段式編碼
電報編碼貌似是很神秘個東西,很多戰鬥中好像都是電報編碼被人破譯,然後,便輸了。
其實,那些都是無線電報被人破譯後暴露了作戰計劃,導致戰敗。
因為無線電波在一定範圍內誰都能收到。
有線電報其實不存在這個問題,人家隻要找不到你的通訊線,並且對接上去,就接收不到信號。
當然,這會兒這個問題都不用考慮。
因為這會兒還沒有哪個國家知道電是什麽東西,更沒人知道電報是什麽玩意。
所以,這會兒編碼可以用最簡單明了的方式來,隻要自己人能弄明白就行了,其他人根本不用管。
那麽,最簡單的編碼方式是怎麽樣的呢?
最簡單的編碼自然就是二進製編碼,0代表十進製的零,1代表十進製的一,10代表十進製的二,11代表十進製的三,以此類推。
那麽這個編碼在電報中又有什麽用呢?
如果光有編碼,自然是沒有用的,編碼還得有相對應的字才行。
比如,編碼1對應你字,編碼10對應我字,編碼11對應他字。
這麽簡單的編碼,泰昌細細解釋了一遍,方以智還是有點不明白。
沒辦法,他這是第一次接觸這什麽進製什麽編碼什麽的,以前他甚至連十進製是什麽意思都不知道呢,怎麽可能一下就明白二進製編碼。
這個怎麽跟人家解釋呢?
泰昌仔細想了想,幹脆命人取來紙筆,給方以智列了個編碼表。
這個編碼表很簡單,總共就十六個數字,相對應的也就十六個字。
0000,代表十進製的零,對應人字。
0001,代表十進製的一,對應你字。
0010,代表十進製的二,對應我字。
0011,代表十進製的三,對應他字。
0100,代表十進製的四,對應來字。
0101,代表十進製的五,對應去字。
0110,代表十進製的六,對應進字。
0111,代表十進製的七,對應退字。
1000,代表十進製的八,對應上字。
1001,代表十進製的九,對應下字。
1010,代表十進製的十,對應敵字。
1011,代表十進製的十一,對應馬字。
1100,代表十進製的十二,對應打字。
1101,代表十進製的十三,對應圍字。
1110,代表十進製的十四,對應追字。
1111,代表十進製的十五,對應了字。
其實,如果光是編碼,他根本不用寫中間這些,二進製編碼代表十進製多少,跟電報的編碼並沒有多大關係,他隻需直接寫出編碼對應的字就行了。
不過,為了讓方以智明白二進製編碼的含義,他還是把中間這段加上去了。
方以智結果泰昌寫好的編碼表細細一看,果然露出一絲恍然之色。
他大致明白這二進製編碼與十進製數字的關係了,但後麵這些對應的字他卻不是很明白。
這後麵對應這些字是什麽意思呢?
他細細看了好一陣,這才小心的問道:“皇上,後麵對應的這些字有什麽用?”
泰昌無奈的解釋道:“這就是電報發送的內容啊,你把字翻譯成編碼,通過電報機發給對方,對方接收了電報編碼再反過來來翻譯成字,就知道電報是什麽意思了。”
呃,這個。
方以智聞言,又沉思起來。
看樣子,他還是不懂。
泰昌想了想,幹脆提筆寫下一段編碼。
1010,0000,0100,1111,1011,1000,1101,1000,0101,1100。
他寫完便把手中的筆遞給方以智,隨即指著上麵的編碼表道:“這是朕根據想要發送的字翻譯成的編碼,你對著上麵的編碼表,查查,這些編碼對應的字,寫下來。”
好吧,這個還是很簡單的。
方以智立馬接過毛筆,一個一個把對應的字寫到了編碼下麵。
1010敵,0000人,0100來,1111了,1011馬,1000上,1101圍,1000上,0101去,1100打。
敵人來了,馬上圍上去,打!
他寫完之後立馬就明白了。
原來,這編碼表是這麽個意思。
原來,這電報機就是這麽發送訊息的!
泰昌見他一副恍然大悟的樣子,不由略帶得意道:“怎麽樣,現在明白了吧?”
明白了,明白了。
方以智連連點了點頭,突然間又愣住了。
緊接著,他又陷入沉思中。
泰昌見狀,不由好奇道:“怎麽了?”
方以智指著編碼表琢磨道:“皇上,這才十六個字啊,我們要準確無誤的傳送訊息,少說也要上千字的編碼吧?
後麵的字怎麽編碼呢,一千個字的編碼恐怕得十位以上吧?
我們連續發這麽十餘個零和一,中間很有可能會出問題啊!”
這的確是個大問題。
一次發送一段四位二進製碼,可能還不會出什麽問題。
如果一次發送一段十多位的二進製碼,那很有可能會出問題,因為沒有就代表零啊,如果中間稍微停頓一下,別人就會誤會,多加進去一個零!
這個怎麽辦呢?
泰昌想了想,隨即提筆在紙上寫了八個1,然後細細算了算。
這一算,他眉頭不由皺了起來,11111111才二百五十五啊!
也就是說,方以智估摸的一點都沒錯,要給上千個字編碼,最少得十位以上。
看樣子用通和不通來代表1和0不保險,那麽,到底怎麽辦呢?
他看了看發送信號的開關,又看了看接收信號的鈴鐺,突然間靈機一動。
對了,還有一種方式,點一下和按著不鬆手!
點一下就代表0,長按一秒或者三秒就代表1,這樣就不容易出錯了。
而且,為了保險起見,還可以將長編碼分成幾段發送。
想到這裏,他果斷道:“要不這樣,我們改一下,把點一下開關當做0,把摁著開關一個或者三個眨眼時間不鬆手當做是1。
然後,我們再把一個編碼分成三段發送,每一段都是四位,這樣,三段加起來就是十二位了,足以編碼數千個字了。”
呃,這樣改一下代碼方式再分三段傳送好像是不會出問題了。
問題就是,這一段一段的怎麽分呢?
方以智想了想,又問道:“皇上,我們這三段怎麽分,中間停多久呢,畢竟兩邊沒法說話,對麵也不知道你這到底是一個編碼的分段還是下一個編碼的開始。”
這個,看樣子還得有個輔助的東西才行。
泰昌掃視了一圈,不由靈機一動。
他指著一旁桌上的沙漏道:“我們做一批一彈指的沙漏,事先約定好,每一段編碼中間間隔的時間就是一彈指,發完一短編碼就把沙漏翻過來,等沙漏計時結束了再繼續下一段。如果中間間隔超過一彈指時間,那就是下一個編碼了。”
一彈指大約是五秒鍾時間,發送電報的時候,停五秒鍾已經算是不短的時間了,這樣應該就不會出現誤判了。
這辦法的確不錯。
方以智想了想,又建議道:“皇上,不若這樣,我們約定好,雙方在發送或者接收完一段四個編碼之後同時把沙漏翻轉過來,沙漏計時結束之前發送的就算是下一段編碼,沙漏計時結束之後發送的就算是下一個編碼。”
聰明!
這樣應該就不會有任何錯誤了。
隻需把編碼表列出來,然後好好操練一番,就可以嚐試遠距離通訊了。
想到這裏,泰昌不由點頭讚賞道:“很好,就這麽辦,你趕緊把所有字的編碼表編出來,同時讓工部做一批一彈指的沙漏,我們就可以試試京城到通州之間的遠距離通訊了。”
這就是後世有名的三段式編碼雛形。
當然,這個後世已經不是泰昌腦海裏的後世了,而是大明一統的後世。