645 三段式編碼(1 / 1)
電報編碼貌似是很神秘個東西,很多戰鬥中好像都是電報編碼被人破譯,然後,便輸了。
其實,那些都是無線電報被人破譯後暴露了作戰計劃,導致戰敗。
因為無線電波在一定範圍內誰都能收到。
有線電報其實不存在這個問題,人家只要找不到你的通訊線, 並且對接上去,就接收不到信號。
當然,這會兒這個問題都不用考慮。
因為這會兒還沒有哪個國家知道電是什麼東西,更沒人知道電報是什麼玩意。
所以,這會兒編碼可以用最簡單明了的方式來,只要自己人能弄明白就行了,其他人根本不用管。
那麼,最簡單的編碼方式是怎麼樣的呢?
最簡單的編碼自然就是二進制編碼, 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。
然後,我們再把一個編碼分成三段發送,每一段都是四位,這樣,三段加起來就是十二位了,足以編碼數千個字了。」
呃,這樣改一下代碼方式再分三段傳送好像是不會出問題了。
問題就是,這一段一段的怎麼分呢?
方以智想了想,又問道:「皇上,我們這三段怎麼分,中間停多久呢,畢竟兩邊沒法說話,對面也不知道你這到底是一個編碼的分段還是下一個編碼的開始。」
這個,看樣子還得有個輔助的東西才行。
泰昌掃視了一圈,不由靈機一動。
他指着一旁桌上的沙漏道:「我們做一批一彈指的沙漏,事先約定好,每一段編碼中間間隔的時間就是一彈指,發完一短編碼就把沙漏翻過來,等沙漏計時結束了再繼續下一段。如果中間間隔超過一彈指時間,那就是下一個編碼了。」
一彈指大約是五秒鐘時間,發送電報的時候,停五秒鐘已經算是不短的時間了,這樣應該就不會出現誤判了。
這辦法的確不錯。
方以智想了想,又建議道:「皇上,不若這樣,我們約定好,雙方在發送或者接收完一段四個編碼之後同時把沙漏翻轉過來,沙漏計時結束之前發送的就算是下一段編碼,沙漏計時結束之後發送的就算是下一個編碼。」
聰明!
這樣應該就不會有任何錯誤了。
只需把編碼表列出來,然後好好操練一番,就可以嘗試遠距離通訊了。
想到這裏,泰昌不由點頭讚賞道:「很好,就這麼辦,你趕緊把所有字的編碼表編出來,同時讓工部做一批一彈指的沙漏,我們就可以試試京城到通州之間的遠距離通訊了。」
這就是後世有名的三段式編碼雛形。
當然,這個後世已經不是泰昌腦海里的後世了,而是大明一統的後世。