2進数から36進数までの基数変換
2進数の101101は、16進数では2Dです。2から36までの任意の基数の間で整数を変換し、変換前に各桁が基数に合うかを確認するので、2進数に102と打つような間違いも見逃しません。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 数
- 101101
- 変換元の基数
- 2
- 変換先の基数
- 16
- 結果
- 2D
基数変換ツールは、文字列で表した整数、変換元の基数、変換先の基数を受け取り、同じ値を指定された記数法で返します。2進数、8進数、10進数、16進数を含む2から36までの全基数に対応しています。入力の英字は大文字と小文字を区別せず、結果は大文字で統一します。変換前に各文字が変換元の基数で有効か確認し、不正な桁を含む場合は誤解を招く値を返さずエラーにします。計算は正確かつ決定的で、通常の機械整数よりはるかに長い値にも対応できます。
変換元の基数を選び、数値を入力します
最初に、元の文字列がどの記数法で書かれているか確認してください。2進数で使えるのは0と1だけです。8進数では0から7、10進数では通常の十進数字、16進数ではさらにAからFを使います。
同じ規則が36進数まで続き、Zは35を表します。先頭のプラスまたはマイナス記号を使用でき、前後の空白は無視されます。0xや0bなどの接頭辞、区切り記号、コンマ、小数点、説明文は含めないでください。
英字の大文字と小文字は同じ桁として扱います。応答前にすべての文字を検証します。たとえば102は、2という桁を使えないため2進数として拒否されます。
この厳密な検証により、誤った変換元基数から一見もっともらしい誤答が生じるのを防げます。
正確な変換の仕組みを理解します
位取り記数法の数値は左から右へ評価します。各桁で、それまでの値に変換元の基数を掛け、新しい桁の値を加えます。正確な整数が得られた後、その値を変換先の基数で繰り返し割ります。
各余りが変換先の桁となり、余りを逆順に読むと最終文字列になります。実装では浮動小数点数ではなく任意精度整数を使用するため、長い入力でも下位桁が失われません。-000を含め、ゼロは常に0として返します。整数には独立した負のゼロが存在しないためです。
先頭のゼロは除かれ、出力英字は安定した比較ができるよう大文字になります。ネットワーク、乱数、時刻、保存状態、モデルは一切使いません。
結果を安全に利用します
アプリケーションの数値型で厳密に表現できると分かっている場合を除き、文字列のまま保持してください。長い識別子、ビットマスク、チェックサム、データベースキーでは特に重要です。ゼロ以外の負の整数ではマイナス記号を維持し、出力桁には0-9とA-Zを使います。
両方の基数は2から36までの整数でなければなりません。検証エラーとして扱い、同じ要求を再試行せず入力の修正を依頼してください。正規化された出力はテストで直接比較でき、逆変換による往復確認にも使えます。
活用例
2進数と16進数の値を確認します
ビットマスク、レジスター、プロトコル項目を、構造が最も分かりやすい記数法へ書き換えます。
短い英数字識別子を作成します
10進整数を36進数へ変換し、単純で復元可能な短い文字列を得ます。
正確なテストデータを作成します
パーサー、演習、検証処理、言語間テスト向けの決定的な期待値を生成します。
よくある質問
どの基数を使用できますか?
変換元と変換先には、それぞれ2から36までの任意の整数を指定できます。
9より大きい桁はどの文字で表しますか?
AからZが10から35を表します。入力では大文字と小文字を区別せず、出力は大文字です。
負数と先頭のゼロに対応していますか?
はい。 先頭の符号を使用でき、先頭のゼロは値を変えず、ゼロにはマイナス記号を付けません。
0xや0bのような接頭辞付きの値を貼り付けられますか?
できません。数字だけを入力し、必要なら先頭にプラスかマイナスの符号を付けます。接頭辞、区切り文字、小数点、カンマは受け付けませんが、数の前後の空白は無視されます。
ある基数から別の基数へはどのように変換しますか?
左から順に桁を読み、それまでの値に元の基数を掛けて各桁を足していきます。その値を変換先の基数で繰り返し割り、余りを逆順に並べると答えになります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/data/base-n-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"number":"101101","source_base":2,"target_base":16}'const res = await fetch("https://api.kit.forhosting.com/data/base-n-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"number": "101101",
"source_base": 2,
"target_base": 16
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/base-n-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"number": "101101",
"source_base": 2,
"target_base": 16
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/base-n-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"number":"101101","source_base":2,"target_base":16}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"number":"101101","source_base":2,"target_base":16}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/base-n-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"number": "101101",
"source_base": 2,
"target_base": 16
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.base_n_convert",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_digits | 4096 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
変換元の基数を選び、数値を入力します
整数をnumberに、現在の基数をsource_baseに指定してください。
正確な変換の仕組みを理解します
そのため、同じ入力フィールドからは常に完全に同じ結果が得られます。
結果を安全に利用します
成功時の応答では、resultをJSON数値ではなく文字列として返します。フィールド不足、範囲外や小数の基数、空の数値、内部の句読点、使用できない桁はinvalid_inputになります。個別確認にはブラウザー版を利用でき、自動処理のAPIは1回$0.002です。
技術的な質問
変換元の基数で無効な桁がある場合はどうなりますか。
invalid_inputで失敗し、問題の文字と指定された変換元基数を示します。
API変換の料金はいくらですか。
API要求1回につき公開基本料金$0.002です。個別の変換にはブラウザーツールを利用できます。