符号
ここでは、情報源のそれぞれの文字をなんらかの辞書に従って符号語に符号化し、それらを連結して符号化された文字列を形成する符号を扱う。可変長符号は、元の文書でそれぞれの文字が出現する頻度が異なる場合に特に便利である。詳しくはコンパクト符号とエントロピー符号を参照。
接頭符号は語頭属性 (prefix property) を満たす符号である。接頭符号ではそれぞれの符号語が決して他の符号語の接頭部にならない。ハフマン符号は接頭符号を作る最も一般的なアルゴリズムであり、そのため接頭符号をハフマン符号と呼ぶこともあるが、ハフマン符号のアルゴリズムを使わずに接頭符号を作ることもできる。接頭符号の他の例として国際電話の国番号、ISBNのグループ番号と出版者番号、W-CDMAで使われている2次同期コード (SSC) などがある。
クラフトの不等式は、可変長符号が一意に復号可能であるための必要条件を与える。
符号理論において、符号(ふごう)またはコード(英: code)とは、シンボルの集合S, Xがあるとき、Sに含まれるシンボルのあらゆる系列から、Xに含まれるシンボルの系列への写像、または、Sに含まれるシンボルに対してその写像を適用した結果得られるXのシンボルの系列(符号語)の集合のことである。Sを情報源アルファベット、Xを符号アルファベットという。すなわち符号とは、情報の断片(例えば、文字、語、句、ジェスチャーなど)を別の形態や表現へ(ある記号から別の記号へ)変換する規則であり、変換先は必ずしも同種のものとは限らない。
コミュニケーションや情報処理において符号化(エンコード)とは、情報源の情報を伝達のためのシンボル列に変換する処理である。復号(デコード)はその逆処理であり、符号化されたシンボル列を受信者が理解可能な情報に変換して戻してやることを指す。
符号化が行われるのは、通常の読み書きや会話などの言語によるコミュニケーションが不可能な場面でコミュニケーションを可能にするためである。例えば、手旗信号や腕木通信の符号も個々の文字や数字を表していることが多い。遠隔にいる人がその手旗や腕木を見て、本来の言葉などに戻して解釈することになる。