基数変換
2から36までの任意の基数で書かれた整数を別の基数に書き直します。16進数のFFは10進数で255です。各桁を基数と照合するので、使えない桁は推測せずに指摘します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 値
- FF
- 元の数表記基数
- 16
- 目標の数表記基数
- 10
- 結果
- 255
- 正規化
- FF
- 十進値
- 255
- 桁数
- 3
基数変換器は、同じ整数の値を変えずに別の数表記の基数で書き直します。二進・八進・十進・十六進はプログラミング授業、ネットワークマスク、カラーコード、組み込みファームウェアで日常的に現れ、十六を超える基数はコンパクトなシリアル方式や競技プログラミングの問題にも登場します。本ツールは、二から三十六までの任意の元基数で、数字のゼロから九と文字のAからZで書かれた整数を受け取り、その基数で合法な桁かどうかを確認したうえで、目標基数の等価な文字列を出力します。
基数変換が整数値を保つ仕組み
基数bの整数は、各桁の重み付き和です。右端の桁は1、次はb、その次はbの二乗、と続きます。基数bから基数kへの変換とは、その一意の非負整数を復元し、kのべき乗を重みとして書き直すことです。
実際には、変換器は元文字列を左から右へ走査し、累積値に元基数を掛け、各桁の値が元基数より厳密に小さいことを確認してから加算します。数字のゼロから九はそのまま、文字のAからZ(大文字小文字を区別しない)は十から三十五に対応します。絶対値が分かると、目標基数で繰り返し割り、余りを桁として集め、最後の余りから最初へ読んで目標表記を作ります。
ゼロはどの基数でも一桁のゼロです。先頭のマイナスは非ゼロ値で保持され、プラス記号は受け付けて捨てます。元の先頭ゼロは値としては無視されますが、応答は不要な先頭ゼロのない正規化された大文字形も返すので、呼び出し側は文字列を決定的に比較できます。
絶対十進の大きさはJavaScriptの安全整数上限で抑えられ、余りと位取りの各段が正確なままです—浮動小数のずれもなく、外部ライブラリも、いかなる種類のネットワーク呼び出しもありません。
実際の仕事で基数変換が現れる場面
ビット演算の宿題をデバッグする学生には、不正な桁を黙ってラップしたり結果をでっち上げたりせず、明示的に指摘する信頼できるオラクルが必要です。ファームウェアとネットワークの技術者は、機器の文書化やキャプチャのレビューで、二進マスク、八進の権限ビット、十六進のレジスタダンプを行き来します。
十を超える基数でコンパクトな英数字コードを発行する製品チームでも、サポートツールと倉庫向けに十進の監査証跡が要ります。競技プログラミングのフィクスチャは、しばしばnを基数bで書くことや、二つの文字列が同じ整数を表す往復証明を求めます。
後からBase64の二進符号化、物理量の単位変換、選んだ基数での桁和が必要になっても、それらは別の検索意図と別のランディングであり、この基数変換器の過負荷ではありません。
活用例
二進・八進・十六進の教室ドリル
基数2・8・10・16の間で宿題の値を変換し、学生が直せる明確な不正桁エラーを返します。
ファームウェアとネットワークのレジスタダンプ
十六進レジスタ値を二進ビット列や十進カウントに書き直し、文書・チケット・コードレビューに使います。
よくある質問
対応している基数は?
元と目標のどちらも2から36までの任意の整数基数です。桁は0-9のあとA-Z(入力では大文字小文字を区別しません)。
文字は大文字小文字を区別しますか?
入力の文字は大文字小文字を区別しません。出力は十以上の桁に常に大文字のA-Zを使います。
負の数はどう扱われますか?
先頭の任意のマイナスを受け付けます。絶対値を変換し、非ゼロ結果では符号を復元します。
255を2進数で書くとどうなりますか?
1が8個並びます。元の基数に10、変換先に2を指定してください。同じ数は16進数ではFFで、255は2進数8桁で表せる最大の値です。
入力した数が受け付けられないのはなぜですか?
多くは、8進数に8があるなど元の基数では使えない桁か、使えない文字が含まれているためです。64文字を超える入力や大きすぎる値も受け付けません。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/radix-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"FF","from_base":16,"to_base":10}'const res = await fetch("https://api.kit.forhosting.com/numth/radix-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "FF",
"from_base": 16,
"to_base": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/radix-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "FF",
"from_base": 16,
"to_base": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/radix-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"FF","from_base":16,"to_base":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"FF","from_base":16,"to_base":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/radix-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": "FF",
"from_base": 16,
"to_base": 10
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.radix_convert",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
min_base | 2 |
max_base | 36 |
max_value_chars | 64 |
max_abs_decimal | 9007199254740991 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
送る内容と受け取る内容
より扱いやすい別名も受け付けます。古典的な検算には、十六進FFから十進二百五十五、十進二百五十五から二進の八個の1、八進七五五から十進四百九十三があります。三つのフィールドを指定します。valueは元アルファベットで書いた整数テキスト、from_baseは二から三十六の整数、to_baseは同じ範囲の目標基数です。値にはnumber、n、input、text、元基数にはfrom、source_base、base_from、src_base、目標基数にはto、target_base、base_to、dst_baseです。欠落フィールド、非整数の基数、二から三十六の外、空値、不正文字、元基数に対して大きすぎる桁、有意文字が六十四を超える本体、安全整数上限を超える大きさはinvalid_inputで拒否され、課金されません。成功時、応答は元のvalue文字列と有効な基数を返し、normalizedは符号付きの正規大文字形、decimalは基数十の符号付き整数、resultは目標基数の変換文字列、negativeは真偽値、digit_countは絶対結果本体の桁数です。
実際の仕事で基数変換が現れる場面
この能力は純粋なparseエンジンなので、同じ値と同じ基数は常に同じJSONを生み、モデルのずれも保存状態もありません。API料金は成功アイテムごとに公開された基本額$0.002で、検証失敗は残高を消費しません。
連携の活用例
競技とCIのgoldenフィクスチャ
既知の整数から決定的な基数b文字列を生成し、競技テストとパイプラインの断言に用います。
技術的な質問
元基数に対して桁が不正な場合はどうなりますか?
invalid_inputで失敗し、不正な文字と許可される桁の範囲を示します。不正入力は課金されません。
費用はいくらですか?
ブラウザツールは無料で端末上で動きます。APIは前払いKIT残高を成功アイテムごとに$0.002で使用し、不正入力は課金されません。