ハミング符号計算機
データ語1011は0110011に符号化されます。偶数パリティの3ビットが1・2・4番目に入り、4つのデータビットが3・5・6・7番目を埋めます。課題の確認や図の作成に役立ち、ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- データ
- 1011
- エンコード結果
- 0110011
- P1
- 0
- P2
- 1
- P4
- 0
Hamming(7,4) 符号は、技術者と学生が最初に実装する単一誤り訂正の二進符号です。4 個の情報ビットは、2 の累乗位置に 3 個の偶数パリティビットを挿入すると 7 ビット語になります。このハミング符号計算機は 4 ビットのデータ語を受け取り、位置 3・5・6・7 に置き、教科書のカバー集合から p1・p2・p4 を計算し、7 ビットの符号化語と各パリティビットを返します。契約は厳格です。 任意の空白・アンダースコア・コロン・ハイフン・カンマを除いたあと、入力は 0 と 1 のちょうど 4 文字でなければなりません。
Hamming(7,4) がデータビットを置きパリティを計算する方法
Hamming(7,4) エンコーダは 4 ビットのデータ語を 7 ビットの符号語へ写像し、後段のデコーダが 3 ビットのシンドロームから反転した 1 ビットを特定できるようにします。送信語の位置は 1 から 7 まで番号付けされます。パリティビットは 2 の累乗位置を占め、位置 1 が p1、位置 2 が p2、位置 4 が p4 です。
4 個のデータビットは残りを順に埋め、位置 3 が最初のデータビット d1、位置 5 が d2、位置 6 が d3、位置 7 が d4 です。p1 は位置 1・3・5・7 の 1 の個数が偶数になるように選ばれ、p1 は d1 XOR d2 XOR d4 に等しくなります。
p2 は位置 2・3・6・7 を覆うので p2 は d1 XOR d3 XOR d4 です。p4 は位置 4・5・6・7 を覆うので p4 は d2 XOR d3 XOR d4 です。符号化語は p1、p2、d1、p4、d2、d3、d4 の連結です。
教室の定番ベクトル 1011 では p1 が 0、p2 が 1、p4 が 0、7 ビット列 0110011 になります。全ゼロのデータ語は 0000000、全 1 の 1111 は 1111111 に符号化され、テスト用の黄金例として使えます。本能力は符号化のみで、受信した 7 ビット語の復号、シンドローム計算、誤りの訂正は行いません。
Hamming(7,4) エンコーダが役立つ場面
計算機工学の授業では、学習者がパリティ位置を取り違えずに任意の 4 ビット課題の 7 ビット語を照合するためにハミング符号計算機を使います。組み込みや記憶ファームウェアの作者は、より大きな SECDED ブロックや Hamming(15,11) 配置を配線する前に、1011 が 0110011 へ写る既知ベクトルに encoded を単体テストで固定します。
面接や試験の基盤は、誤答を正解にしてしまう無言のパディングではなく、3 ビットや 5 ビットの文字列を拒否する決定的オラクルを必要とします。検証失敗は残高を消費しません。本ツールは汎用 ECC ライブラリの代替ではなく、学生とテストが実際に探す Hamming(7,4) エンコーダであり、可変長ハミング構成器でもデコーダでもありません。
活用例
授業向け Hamming(7,4) 演習
学生に 4 ビットのデータ語を提出させ、encoded と p1・p2・p4 を、位置 1・2・4 の教科書どおり偶数パリティ配置と照合してください。
ファームウェア ECC 単体テスト
メモリファームウェアに大きなハミングや SECDED ブロックを配線する前に、1011 が 0110011 へ符号化される Hamming(7,4) 黄金例を CI に固定します。
試験・面接の判定オラクル
ちょうど 4 個の二進数字でない文字列を無言で埋めず拒否する決定的エンコーダで、ハミング符号の設問を採点します。
よくある質問
Hamming(7,4) 符号で 4 ビットを符号化するには?
data に 1011 のようなちょうど 4 個の二進数字の文字列を送ってください。
入力がちょうど 4 個の二進数字でない場合は?
3 ビット断片、5 ビット超過、空文字、非二進文字は拒否され、課金されません。
このハミング符号はどのパリティ規約ですか?
偶数パリティ、教科書の Hamming(7,4) 規約です。p1・p2・p4 は各カバー集合の 1 の個数が偶数になるように選ばれます。
7 ビット語のどこにパリティビットが置かれますか?
2 の累乗位置です。 p1 が位置 1、p2 が位置 2、p4 が位置 4。データビットは位置 3・5・6・7 を占めるので、layout は p1 p2 d1 p4 d2 d3 d4 です。
受信した7ビット語の復号や誤り訂正もできますか?
いいえ、このツールは符号化だけを行います。受け取った7ビット語からシンドロームを求め、反転したビットを直すのは復号器の役割で、ここでは扱いません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/enc/hamming-code \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"data":"1011"}'const res = await fetch("https://api.kit.forhosting.com/enc/hamming-code", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"data": "1011"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/hamming-code",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"data": "1011"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/hamming-code", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"data":"1011"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"data":"1011"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/hamming-code", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"data": "1011"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.hamming_code",
"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 で失敗し、課金されません。
Hamming(7,4) がデータビットを置きパリティを計算する方法
本エンドポイントは教科書どおりの Hamming(7,4) 講義と同じ偶数パリティを使います。
入力契約、応答フィールド、不正な 4 ビット語
data はちょうど 4 個の二進数字の文字列です。検証前に空白・アンダースコア・コロン・ハイフン・カンマを取り除くため、1 0 1 1 のような間隔付きニブルは 1011 として受理されます。成功時は正規化した 4 ビットの data をエコーし、encoded を 7 ビットのハミング符号語として返し、3 個のパリティビット p1・p2・p4 と配置済みデータビット d1 から d4 を 0 または 1 の整数で報告し、positions を位置 1 から 7 の添字順の 7 要素配列とし、layout を記憶用の p1 p2 d1 p4 d2 d3 d4、parity を even にして規約を推測せず表示できるようにします。シンドロームが必要なら encoded を独自のデコーダと組み合わせてください。必須フィールド data を含む JSON 本体を POST してください。data を省略した場合、別名 bits、word、text、value、input をその順で受け付けます。除去後は 0 と 1 のちょうど 4 記号でなければならず、欠落フィールド、空文字、3 ビット断片、5 ビット超過、0 と 1 以外の文字はすべてフィールド data を名指しする invalid_input で失敗します。これらの失敗は課金されません。本エンドポイントはビットを反転せず、失敗した位置も報告しません。ペイロードは 4 ビット、XOR は数回、ネットワークも乱数もないため、黄金例は実行環境間でバイト単位で一致します。
Hamming(7,4) エンコーダが役立つ場面
実装は純粋 parse の tier A のため、成功した呼び出しはモデルトークンも外向き通信もなく公開の基本価格 $0.002 です。リクエストを小さく保ち、encoded をコピー可能な主結果とし、講義スライドのカバー図を描くときは p1・p2・p4 をご利用ください。
技術的な質問
ハミング符号計算機の料金は?
ブラウザ上のツールは無料です。API 要求は成功した呼び出しあたり $0.002 の前払い KIT 残高を使い、不正な入力は課金されません。