代碼

表示資訊的方法

通訊資訊處理中,代碼code)是指一套轉換資訊的規則系統,例如將一個字母單詞、聲音、圖像或手勢轉換為另一種形式或表達,有時還會縮短加密以便通過某種信道或儲存媒體通訊。一個最早的例子是語言的發明,它使人可以通過說話將他看到、聽到、感受到或想到的事情表達給其他人。但是,說話的通訊範圍局限於聲音可以有效傳播、辨識的範圍,並且發言只能傳達給現有的聽眾。將言談轉化為視覺符號寫作擴大了跨越時間空間的通訊表達。代碼有時亦稱代號等。

代碼
上級分類記號、​規則為基礎的系統 編輯
用途資料轉換 編輯
莫爾斯電碼是一種著名的代碼

而編碼(encoding)能將源頭英語Communication source的資訊轉化為便於通訊或儲存的符號。解碼(Decoding)則是將其逆向還原的過程,將代碼符號轉化回收件人可以理解的形式。

編碼的其中一個原因是在平實語言英語Plain language、口語或寫作難以實現實現的情況下進行通訊。例如,旗語可以用特定標記表達特定資訊,站在遠處的另一個人可以解讀標識來重現該資訊。

理論

編輯

資訊論電腦科學中,代碼通常被認為是一個獨特的從一個源字母表表示成符號的演算法,通過編碼的字串,這些字串可能在一些其他的目標字母表中。通過連接編碼字串獲得在源字母表上表示符號序列的擴充代碼。

在給出一個數學上精確的定義之前,這是一個簡短的例子。對映

 

是一個代碼,其源字母表是集合  ,其目標字母表是集合  。使用擴充代碼,編碼後的字串0011001可以被分組成代碼字0 011 0 01,這些代碼又可以解碼為源符號序列 acab

使用形式語言理論中的術語,這個概念的精確數學定義如下:讓 S 和 T 是兩個有限集,分別稱為源字母表和目標字母表代碼   是將每個符號從 S 對映到 T 上的符號序列總函數  的擴充    同態,它自然地把每個源符號的序列對映到目標符號序列。

可變長度編碼

編輯

在本節中,我們考慮從某個字典中的代碼字英語code word對每個源(明文)字元進行編碼的代碼,這些代碼字的連接為我們提供了已編碼的字串。當明文字元具有不同的概率時,可變長度代碼特別有用;另見熵編碼

字首代碼是具有「字首屬性」的代碼:系統中不存在作為集合中任何其他有效代碼字的字首(開始)的有效代碼字。霍夫曼編碼是最知名的用於匯出字首碼的演算法。即使代碼不是由霍夫曼演算法產生的,字首代碼也被廣泛稱為「霍夫曼代碼」。字首代碼的其他範例是國家呼叫代碼ISBN 的國家和出版商部分,以及 UMTS WCDMA 3G 無線標準中使用的輔助同步代碼。

卡夫不等式給出了字首碼中可能存在的碼字長度集。實際上,任何唯一可解碼的一對多代碼,不一定是字首代碼,都必須滿足卡夫不等式。

錯誤糾正編碼

編輯

代碼也可用於以更耐受傳輸或儲存錯誤的方式表示數據。 這種所謂的糾錯碼通過在儲存(或傳輸)的數據中包含精心設計的冗餘來工作。 範例包括漢明碼里德-所羅門碼里德-穆勒碼英語Reed–Muller code哈達碼代碼英語Hadamard codeBCH碼渦輪碼二進制戈萊碼英語Binary Golay codeGoppa碼英語Goppa code低密度奇偶檢查碼時空碼英語Space–time code。 可以最佳化錯誤檢測代碼以檢測突發錯誤隨機錯誤

例子

編輯

溝通中為簡潔使用的代碼

編輯

字元編碼

編輯

目前最廣為人知並被使用的數據通訊代碼(也稱字元表示)是ASCII。 它用7位元二進制數字表示128個字元——即由7個為1或0的位元組成。還有許多其他編碼用一個位元組表示每個字元(通常被稱為頁碼), 整數碼位 (Unicode)或者一個位元組序列(UTF-8).

遺傳密碼

編輯

哥德爾代碼

編輯

數學中,哥德爾代碼哥德爾不完備定理的基礎。其中的想法是將數學符號對映到一個自然數 (使用一個哥德爾數)。

其他

編輯

密碼學

編輯

其他例子

編輯

編碼的其他例子包括:

解碼的其他例子包括:

代碼與首字母縮略詞

編輯

首字母縮略字和縮寫可以認為是一種代碼,並且某種意義上所有語言和書寫系統都是人類思維的代碼。

參見

編輯

參考資料

編輯