トップ > スマホ・デジタル

パリティ・ECC(誤り検出・訂正)の計算

更新:2026年9月

送りたいデータのビット数を入れると、誤りを見つけるためのパリティビット、または誤りを見つけて自動で直す(訂正する)ハミング符号に必要な検査ビットの数がわかります。

くわしい条件を変える(なくても計算できます)
ハミング符号のときだけ効きます。1ビットの誤りは直せますが、2ビットの誤りは見つけるだけで直せません
PR

計算方法

ハミング符号 検査ビットの数rは、2 の r乗 ≧ データのビット数 + r + 1を満たす、いちばん小さい整数です。

例:データ8ビットなら、r=4のとき2⁴=16、8+4+1=13で16≧13を満たすため、検査ビットは4個必要です(符号全体で12ビット)。

パリティビット データの中の「1」の個数を数え、偶数(または奇数)になるように、1ビットだけ付け加えます。

式の意味を説明します。誤りの位置を指し示すには、検査ビットの組み合わせでどこが違うかを表せる必要があります。r個の検査ビットで表せる状態は2のr乗通りで、そのうち1通りは誤りなしを表します。残りで、データと検査ビットを合わせた全部の桁を指せなければならないので、2のr乗がデータ数+r+1以上である必要があります。

例:データ12ビットなら、rが5のとき2の5乗は32で、12+5+1=18がこれに収まるため検査ビットは5個です。符号全体は17ビットになります。

気をつけること。ハミング符号は1ビットの誤りを直せますが、2ビットが同時に誤ると正しく直せません。SECDEDはもう1つパリティを足して、2ビットの誤りがあったことだけ見つけられるようにする仕組みです。パリティ1個だけでは、誤りの有無しか分かりません。

出典:ハミング符号(誤り訂正符号)の検査ビット数の関係式(2^r ≧ データビット数+r+1)

PR
PR
PR

よくある質問

パリティビットとハミング符号の違いは?

パリティビットは誤りがあったことしか分かりませんが、ハミング符号は検査ビットを増やすことで、どのビットが誤っているかまで分かり、自動で直せます。

SECDEDとは?

ハミング符号にもう1ビット足して、2ビットの誤りがあったことを見つけられるようにする仕組みです(直せるのは1ビットの誤りまでです)。パソコンのメモリ(ECCメモリ)でよく使われます。

データが大きいほど検査ビットは増える?

はい。ただし増え方はゆるやかで、データが2倍になっても検査ビットは1〜2個増える程度です。

PR

よく一緒に使われる計算

PR

同じ分野のほかの計算

PR