グレイコード変換
2進数の1011はグレイコードの1110になり、逆方向の変換も同じく正確です。先頭のゼロは保たれるため、決まった桁幅の答えがそのまま得られます。エンコーダの表やカルノー図、デジタル論理の演習に役立ちます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 入力値
- 1011
- 変換の向き: binary_to_gray
- Binary to gray
- 入力ビット
- 1011
- 出力ビット
- 1110
- 入力整数
- 11
- 出力整数
- 14
二進反射グレイコードは連続する整数を、隣り合う符号がちょうど1ビットだけ異なるようにラベル付けします。この性質はロータリーエンコーダ、カルノー図、誤り耐性のある状態機械、ディジタル通信のデモ、二進語をグレイ形式へ写したりグレイから二進を復元したりする授業演習で重要です。
反射グレイコードとは何か、有効な入力は何か
標準二進は非負整数の通常の基数2表現で、桁値は2の累乗です。二進反射グレイコードは同じ整数の別のラベル付けです。0と1のビットを使いますが、連続値は1ビットだけが反転します。
二進 B からグレイ G への古典的符号化は、ビット単位で G が B と B を1ビット右シフトしたものの XOR という規則です。復号は最上位ビットから最下位ビットへ XOR を累積し、各二進ビットがグレイ接頭辞のパリティになるようにします。純粋なビット列の先頭ゼロは保持され、宿題やハードウェア例が固定幅を保てます。
経路上にネットワーク呼び出し、乱数シード、壁時計はありません。
使い方と授業での活用、扱える範囲
宿題確認、講義デモ、ロータリーエンコーダ実験、使い捨てスクリプトなしの素早い検証には、ブラウザ内の無料グレイコード変換を呼び出します。検証失敗は残高を消費しません。複数の符号化を通る授業では二進や十六進の整形と、グレイ隣接と1ビット遷移をつなぐ真理値表・カルノー図ツールと組み合わせてください。
採点用オラクルには授業規模の幅を優先し、アイソレート安全のためビット長を公開上限内に保ってください。ソース入力は他の KIT parse 項目と同じ保持規則に従い、アルゴリズムが完全に決定的なので結果は継続的インテグレーションのフィクスチャに固定して安全です。
活用例
エンコーダと組み込みツールのメモ
ロータリーエンコーダ、状態機械、センサ位置コードを文書化する開発者は、XOR 表を手計算せずに二進ソースから安定したグレイビット列を生成します。
よくある質問
非二進値を入れるとどうなりますか?
ビット列は桁 0 と 1 のみ(任意の 0b 接頭辞)。浮動小数、混在テキスト、ごみは拒否され課金されません。
どのグレイコード変種を実装していますか?
二進反射グレイコードのみです。符号化は値とその1ビット右シフトの XOR、復号は最上位から累積 XOR です。他のグレイ族は対象外です。
2進数からグレイコードへは手計算でどう変換しますか?
2進数を1桁右にずらし、元の数と1ビットずつ排他的論理和を取ります。2進数の1011ならグレイコードは1110になり、このツールの結果と一致します。
グレイコードを2進数に戻すにはどうしますか?
左端のビットから順に、そこまでのグレイコードのビットすべての排他的論理和を取ると、その位置の2進ビットになります。グレイから2進の方向を選べば、同じビット数のまま自動で戻せます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/fmt/gray-code \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"1011","direction":"binary_to_gray"}'const res = await fetch("https://api.kit.forhosting.com/fmt/gray-code", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "1011",
"direction": "binary_to_gray"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fmt/gray-code",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "1011",
"direction": "binary_to_gray"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fmt/gray-code", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"1011","direction":"binary_to_gray"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"1011","direction":"binary_to_gray"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fmt/gray-code", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": "1011",
"direction": "binary_to_gray"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fmt.gray_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 エラーで失敗します。
反射グレイコードとは何か、有効な入力は何か
必須フィールド value を0と1だけのビット列(任意で 0b 接頭辞)、または非負整数/整数桁文字列として送ってください。フォームや SDK が既にその名前でラベルしている場合、エイリアス bits、binary、n も受け付けます。方向は符号化なら binary_to_gray または to_gray、復号なら gray_to_binary または from_gray である必要があります。エイリアス dir と mode も同様です。浮動小数点、負数、空文字列、二進桁でない混在テキストは invalid_input で失敗します。この製品は近似ではなく正確な整数変換を約束するためです。同一入力は常に同一の JSON を生みます。
応答フィールドの読み方と手作業での検算
素早い検算が信頼を築きます。二進 1 0 1 1 はグレイ 1 1 1 0 に符号化され、グレイ 0 1 1 1 は二進 0 1 0 1 に戻り、二進 0 はグレイ 0 に写り、3ビットの二進 1 0 0 はグレイ 1 1 0 になります。各段が離散ビット上の XOR なので、大きな入力で浮動小数点の技巧が漂うようには結果はドリフトしません。成功時、応答は送った元のビット列または安全な整数を value としてエコーし、方向を正規の binary_to_gray または gray_to_binary ラベルとして direction に、正規化済み最上位ビット先頭の入力列を bits_in に、表示・採点・エンコーダ文書で通常欲しい変換後の列を bits_out に返します。integer_in と integer_out は、そのビット列を安全な JSON 数に収まる非負整数、または大きい場合は十進桁文字列として解釈し、パイプラインがどちらの形でも検証できます。bit_width は bits_in の長さを報告し、method は常に reflected_gray なので下流は形を嗅がずに分岐できます。value 欠落、direction 欠落、非二進列、未対応の方向ラベル、過大なビット幅はすべて invalid_input で失敗し、検証拒否後は課金されません。人が一行だけ必要なときは bits_out だけを使い、自動チェッカーが桁列に加え方向・幅・手法も検証するときはオブジェクト全体を使います。
API の使い方、料金、授業フロー、実務上の上限
必須の value と direction を含む JSON 本体を送るか、クライアントが既に別の名前を使っている場合は文書化されたエイリアスを使ってください。チュータリング基盤、コーディング評価サンドボックス、ファームウェアツールチェイン、文書生成器が KIT 残高のもと成功アイテムごとに $0.002 の安定契約を必要とするときは前払い API を使います。SDK を出す作者は bits_out を UI ラベル、CLI フラグ、元の二進定数の横にグレイ形を示す生成コメントへ直接写せます。
連携の活用例
宿題と試験の検算
学習者は二進語を反射グレイコードへ往復変換し、ビット列を比較し、誤って非二進値を送ったときは明確な invalid_input エラーを受け取ります。
チュータリング基盤と自動採点
レッスン作成者とコーディングサンドボックスは、反射グレイ論理をスタックごとに再実装せずに二進↔グレイ回答を大規模に確認する前払い JSON 契約を呼び出します。
技術的な質問
このツールで二進からグレイコードへどう変換しますか?
value をビット列または非負整数(例 value: "1011")、direction: "binary_to_gray" として JSON を送ってください。bits_out が反射グレイコードの文字列です。
グレイコードを二進に戻すには?
value にグレイビット列を入れ、direction "gray_to_binary"(または from_gray)を使います。応答の bits_out が復元された標準二進列です。
グレイコード変換は無料ですか?
ブラウザツールは端末上で無料です。API 呼び出しは成功アイテムごとに $0.002 の前払い KIT 残高を使います。検証失敗は課金されません。