Base62 数値変換
1000は62進数でG8です。整数を数字と大文字、小文字でできたリンク向きの短いコードに変換し、10進数に戻すこともできます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 値
- 1000
- 変換の方向
- to_base62
- 結果
- G8
- 10進整数
- 1,000
- 62進数
- G8
- 基数
- 62
62進数変換ツールは、非負の整数を62個の記号(10個の数字、26個の大文字、26個の小文字)で表記し直します。このコンパクトなアルファベットは、短縮URL、不透明なデータベースキー、YouTube形式の識別子、および36進数より高密度で印字可能なASCII範囲に収まるURL安全なトークンに使われるエンコーディングと同じ系統です。方向(10進数から62進数、または62進数から10進数)を選び、値を入力すると、整形済みの10進整数、62進数文字列、桁数を含む決定的な結果が返ります。大文字と小文字は別の数字なので、大文字のAは10、小文字のaは36です。アルファベット外の文字は、誤答を黙って返すのではなく、明確な無効入力エラーで失敗します。
62進数のエンコードとデコードの仕組み
62進法は基数62の位取り記数法です。ここで使う標準アルファベットは0から9、次に値10から35に対応する大文字のAからZ、そして値36から61に対応する小文字のaからzです。非負の10進整数をエンコードするには、62で繰り返し割り、各余りを次の最下位桁として記録します。
それらの余りを逆順にすると、ゼロ自身を除き先頭にゼロを持たない通常の左から右への文字列が得られます。デコードでは、文字列を左から右へたどり、累計を62倍し、次の文字の桁値を加えます。これは古典的なホーナー法です。
大文字と小文字は異なる値に対応するため、変換は大文字小文字を区別します。大小を混ぜると数値が変わり、スペース、プラス記号、スラッシュ、句読点などの無効な文字は、問題の文字とその位置を示す無効入力で中断します。このアルゴリズムは正確な整数演算のみを使用します。
結果をシリアライズする際にすべての桁が正確であるよう、値はJavaScriptの安全な整数範囲内に収める必要があります。負の入力は意図的に拒否されます。短縮リンクや不透明IDの用途は符号なしであり、先頭のマイナスは純粋な62進アルファベットという考え方と衝突します。
大文字小文字を区別しない2から36までの任意の基数が必要な場合は、別の検索意図であり、汎用の基数変換ツールが対応します。
62進数コンバーターが実務で使われる場面
プロダクトやグロースのチームは、マーケティングリンクを読みやすく保ちつつ大規模カタログに耐える密度を確保するため、連番の識別子を短いパスセグメントに圧縮します。バックエンドサービスは、自動採番の連番構造を漏らさない不透明な公開キーを発行し、62進数を使ってパーセントエンコードなしでURL安全なトークンを保ちます。
コンテンツプラットフォームは、動画やオブジェクトのIDが内部整数と公開の英数字文字列の間でどう対応するかを文書化し、エンジニアは大文字と小文字を別の桁として扱う共通のオラクルを必要とします。コンピュータサイエンスの授業では、16進法を超えた位取り記数法を扱います。
専用の62進数ツールは、62個の記号に文字の大小両方が必要で、36進法には不要な理由を明確にします。QAや結合テストは、ディープリンク用の期待される短縮コードを生成し、10進数から62進数への往復の一致を検証します。
汎用の多基数表、純粋なBase64バイナリエンコード、固定幅の2の補数パッキングは、それぞれ独立した検索意図として扱い、この整数62進数コンバーターを本来の範囲を超えて拡張しないでください。
活用例
短縮URLとコンパクトな公開ID
連番やスノーフレーク型の整数を、短縮リンクや共有可能なオブジェクト識別子向けの高密度な62進数パスセグメントにエンコードします。
よくある質問
この62進数コンバーターが使うアルファベットは?
0-9、A-Z、続いてa-zの62文字をこの順序で使用します。大文字と小文字は別の桁です(Aは10、aは36)。パディング文字はありません。
無効な62進文字が含まれるとどうなりますか?
メッセージには問題の文字とその位置が示されます。許可されるのは0-9、A-Z、a-zのみで、スペース、句読点、符号は拒否されます。
Base64や36までの基数変換と同じですか?
いいえ。 Base64は異なるアルファベットとパディングでバイナリバイトをエンコードします。汎用の基数変換ツールは通常36進数までで、大文字小文字を区別しません。このページは、大文字小文字を区別する桁を持つ整数の62進数向けです。
料金はいくらですか?
ブラウザツールは無料でローカルで動作します。無効な入力は課金されません。
1000は62進数で何になりますか?
G8になります。G8を10進数に戻すと再び1000になり、0は0のままなので、短いコードを使う前に両方向で確かめられます。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/fmt/base62 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"1000","direction":"to_base62"}'const res = await fetch("https://api.kit.forhosting.com/fmt/base62", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "1000",
"direction": "to_base62"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/fmt/base62",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "1000",
"direction": "to_base62"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/fmt/base62", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"1000","direction":"to_base62"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"1000","direction":"to_base62"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/fmt/base62", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"value": "1000",
"direction": "to_base62"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "fmt.base62",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs | 9007199254740991 |
max_base62_chars | 11 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
無料のブラウザフォームと有料APIは同一の純粋な同型関数を共有するため、授業のデモ、短縮リンク生成、自動パイプラインが同じ入力で食い違うことはありません。成功したAPI呼び出しの料金は公開基準の1件$0.002です。
62進数のエンコードとデコードの仕組み
浮動小数点の丸め、乱数シード、時刻、ネットワーク呼び出しは一切なく、同一の入力は常に同一のJSONを生成します。
送信内容と返却内容
アンダースコア、ハイフン、スペースを含むその他の文字は、無効な62進文字を指摘するメッセージで失敗します。Number.MAX_SAFE_INTEGERを超える絶対値の10進値は、下位の桁が黙って失われないよう拒否されます。例として、1000はG8にエンコードされ、0は0のまま、G8は1000にデコードされます。必須フィールドはvalueとdirectionの2つです。directionは、valueが非負の10進整数ならto_base62、valueが62進数文字列ならfrom_base62を指定します。フォームやスクリプトがUIに合う名前を使えるよう、エイリアスも受け付けます。valueはn、number、input、text、decimal、base62も、directionはdir、mode、opに加えてto、from、encode、decodeのような短い同義語も受け付けます。to_base62では、valueはJSON整数または先頭にプラス記号を付けられる数字列にできます。小数、科学的記法、裸の単語、NaN、Infinity、負数はinvalid_inputで失敗し、課金されません。from_base62では、すべての文字が0-9、A-Z、a-zのアルファベットに属する必要があります。成功時の応答には、整形済みの値文字列、正規化された方向、数値としてのdecimal、コンパクトな文字列としてのbase62、主要な変換形としてのresult(エンコード時は62進数、デコード時は10進文字列)、アルファベット全体の文字列、62に設定されたbase、62進表現のdigit_countが含まれます。成功したAPI呼び出しの料金は公開基準の1件$0.002で、検証失敗はプリペイド残高を消費しません。
62進数コンバーターが実務で使われる場面
この機能は純粋な解析エンジンなので、API料金は公開基準の成功1件$0.002で、検証失敗は残高を消費しません。
連携の活用例
不透明なAPIキーとトークン
内部の非負整数を、連番構造を漏らさずURL安全なままの、大文字小文字を区別する英数字文字列に対応付けます。
教育と往復フィクスチャ
位取り記数法の宿題を確認し、単体テストや面接のウォームアップ用に10進数と62進数のゴールデンペアを生成します。
技術的な質問
方向はどう選びますか?
valueが非負の10進整数で62進数文字列が欲しい場合はto_base62を、valueがすでに62進数で10進整数に戻したい場合はfrom_base62を使います。