ハミングECCパリティビット数
ハミング符号に最低限必要なパリティビット数が分かります。データ4ビットなら3ビットで、余りのシンドロームがない定番の(7,4)符号になります。全体の長さと符号化率も表示され、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- データビット
- 4
- パリティビット
- 3
- 総ビット数
- 7
- カバー容量
- 8
- 使用位置数
- 8
二進ハミング符号は、少数のパリティビットを付加することで、メモリ語・フラッシュページ・リンクフレームを保護し、反転した1ビットをシンドロームから特定して訂正します。設計で最初に問われるのは、与えられたデータビット数 m に対して必要なパリティビット数 r です。本ハミングECCパリティビット数計算機は、古典的な被覆不等式で答えます。すなわち 2 の r 乗は少なくとも m + r + 1 でなければならず、2^r 通りのシンドロームが無誤りと、符号化長 n=m+r の各1ビット誤りを表せます。正の整数 m を入力すると、最小の r、総符号長 n、被覆容量、使用中と余剰のシンドローム数、符号レート m/n を返します。
なぜ 2^r が m + r + 1 パターンを覆う必要があるか
長さ n=m+r の二進1誤り訂正ハミング符号は、情報ビット m 個とパリティビット r 個を格納します。伝送や記憶の後、復号器は r ビットのシンドロームを計算します。シンドロームが零なら受信語は符号語と一致し、検出された1ビット誤りはありません。
それ以外の非零シンドロームは、反転し得た n 個のビット位置のうちちょうど1つを指し、復号器がそのビットを反転して元の語を復元します。この管理には、正常ケース用の1パターンと1誤りケース用の n パターン、すなわち n+1=m+r+1 個の異なるシンドローム値が必要です。
r ビットのシンドロームは 2 の r 乗通りしか取れないため、2^r が m+r+1 以上であるという不等式が必要になります。等号が成り立つとき符号は完全で、すべてのシンドロームが使われ、追加の全体パリティビットなしでは2重誤り検出の余力はありません。
古典例は m=4・r=3 の (7,4) 符号(7位置+正常で8シンドローム)と m=11・r=4 の (15,11) です。本計算機は合法な任意の m について不等式を満たす最小の r を求めるので、レジスタや ECC DRAM メタデータのページ、試験の解答を寸法するときに手作業で境界を試行錯誤する必要はありません。
ハミングパリティ寸法が役立つ場面
ファームウェアやメモリコントローラのチームは、レジスタマップやフラッシュ予備領域のレイアウトを確定する前にデータパスにぶら下がる検査ビット数を知るために、ハミングECCパリティビット数計算機を使います。計算機アーキテクチャや符号理論の授業では、与えられた m に対する最小 r を問う宿題用の決定的オラクルが必要で、余剰シンドロームが残る非完全長も含みます。
面接対策では、データ4ビットにパリティ3・データ11にパリティ4という即時確認ができ、毎回フルのパリティ検査行列を描かずに済みます。リンク層・ストレージ設計者は候補の語幅ごとにレート m/n を比較し、信頼性オーバーヘッドと帯域を取引します。検証失敗は残高を消費しません。
活用例
メモリとフラッシュの ECC レイアウト
レジスタマップ・予備領域・コントローラのマイクロコード予算を固める前に、データ語やページに必要なハミングパリティビット数を寸法します。
符号理論の宿題と試験
2^r ≥ m+r+1 の下で任意の m に対する最小 r を確認します。完全符号 (7,4)(15,11) と余剰シンドローム付きの非完全長を含みます。
面接と設計上のトレードオフ
1誤り訂正ハミングのオーバーヘッドを説明するとき、候補のデータ幅ごとに総長 n とレート m/n を比較します。
よくある質問
データ m ビットのハミング符号に必要なパリティビット数は?
2^r ≥ m + r + 1 を満たす最小の整数 r です。
なぜ不等式は 2^r ≥ m + r + 1 なのですか?
r ビットのシンドロームは 2^r 通りあり、無誤り1つと符号化ビット位置ごとの1誤り用です。m+r+1 パターンが必要なので 2^r が覆わねばなりません。
拡張ハミング(SECDED)の全体パリティも含みますか?
いいえ。 本計算機は二進ハミングの1誤り訂正用の最小 r のみを返します。拡張 SECDED はその r の上に全体パリティ1ビットを追加します。
データ11ビットには何ビットのパリティが必要ですか?
4ビットです。2の4乗で、データ11ビットとパリティ4ビット、それに誤りなしの場合をちょうど表せます。これが定番の(15,11)ハミング符号で、すべてのシンドロームを余さず使います。
完全なハミング符号とはどういう意味ですか?
すべてのシンドロームが使われている状態です。誤りなしの場合に1つ、各ビット位置に1つずつ割り当てられます。(7,4)と(15,11)は完全符号なので、全体のパリティビットを足さない限り二重誤りを検出する余裕はありません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/dev/ecc-parity-bits \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"data_bits":4}'const res = await fetch("https://api.kit.forhosting.com/dev/ecc-parity-bits", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"data_bits": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/ecc-parity-bits",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"data_bits": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/ecc-parity-bits", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"data_bits":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"data_bits":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/ecc-parity-bits", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"data_bits": 4
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.ecc_parity_bits",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
不正入力は invalid_input で失敗し、課金されません。
入力契約・応答フィールド・具体例の数値
位置番号(2の冪にパリティ)が必要ならご自身のビット配置図と組み合わせてください。必須フィールド data_bits(1 から 1000000 までの整数)を1つ含む JSON 本体を POST してください。値は JSON 整数でも数値文字列でも構いません。欠落・非整数・零・負・非有限・上限超過は invalid_input で問題を示して失敗します。成功時は data_bits を m として返し、最小 r を parity_bits、n=m+r を total_bits、2 の r 乗を covering_capacity、n+1(正常シンドローム+符号化ビットごと1パターン)を positions_used、covering_capacity から positions_used を引いた spare_syndromes、m/n を十二桁に丸めた code_rate、具体数で被覆検査を書き直す inequality と inequality_satisfied、短い formula を返します。例:data_bits が4なら parity_bits は3、total_bits は7、covering_capacity は8、positions_used は8、spare_syndromes は0、code_rate は約 0.571428571429—教科書の (7,4) ハミングです。例:data_bits が1なら parity_bits は2、total_bits は3(2^2=4 が 1+2+1 を覆う)。例:data_bits が8なら parity_bits は4(16 が 8+4+1=13 を覆う)で余剰シンドロームは3です。本エンドポイントは r と n の寸法値のみを返し、符号化ペイロードやビット行列は返しません。
ハミングパリティ寸法が役立つ場面
実装は純粋 parse の tier A のため、成功した各呼び出しは公開の基本料金 $0.002 のみで、モデルトークンも外向きネットワークも使いません。data_bits を文書化された範囲に保ち、整数フィールドをテストに固定すれば、教室・LMS プラグイン・エッジワーカー向けに再現可能な SEC 寸法が得られ、符号理論ライブラリ一式を自前で立てる必要はありません。
技術的な質問
データ4ビットのときのパラメータは?
parity_bits=3、total_bits=7、covering_capacity=8、spare_syndromes=0—古典的な完全 (7,4) ハミング符号です。
ハミングECCパリティビット数計算機の料金は?
ブラウザ上のツールは無料です。API 要求は成功した呼び出しごとに前払い KIT 残高から $0.002 です。不正入力は課金されません。