レーマー符号
符号化はそれぞれの位置ごとに逆転を数えることで行える。
また、次のような方法でインプレースに行うこともできる(ただし、現実的には単純に数える以上に効率的であるわけではない)。
この方法では、まず各要素を昇順にソートしたときの0から始まるインデックスへと置き換える。そして左から右へ順に、各エントリxについて、それより右でかつxより大きいエントリから1を引くことを繰り返す。 たとえば、B, F, A, G, D, E, Cは1, 5, 0, 6, 3, 4, 2という数列に置き換えられ、次のように処理される。
1 5 0 6 3 4 2 1 4 0 5 2 3 1 1 4 0 4 2 3 1 1 4 0 3 1 2 0 1 4 0 3 1 2 0 1 4 0 3 1 1 0 1 4 0 3 1 1 0 {\displaystyle {\begin{matrix}\mathbf {1} &5&0&6&3&4&2\\1&\mathbf {4} &0&5&2&3&1\\1&4&\mathbf {0} &4&2&3&1\\1&4&0&\mathbf {3} &1&2&0\\1&4&0&3&\mathbf {1} &2&0\\1&4&0&3&1&\mathbf {1} &0\\1&4&0&3&1&1&\mathbf {0} \\\end{matrix}}}
こうして、全エントリを処理し終わって得られた最後の行がレーマー符号である。 デコードはこの逆を行えばよい。右から左へ各エントリxについて、それより右にあるx以上のエントリに1を足すことを繰り返す。