双方向基数変換ツール - 10進数・Hex・Base32・Base64

10進数とBase16(Hex)、Base32、Base64の数値を双方向に変換できる無料オンラインツールです。エンコードされた値がどの基数かを自動判定し、10進数をBase16/Base32/Base64にエンコードしたり、逆にエンコード値を10進数にデコードしたりできます。RFC 4648準拠。

双方向ベース変換ツール

10進数と標準ベースエンコーディング(Base16/Hex、Base32、Base64)間で変換します。変換するには、どちらかのフィールドに値を入力してください。

正の整数を入力してください(最大:9,007,199,254,740,991)

Base16、Base32、またはBase64でエンコードされた値を入力

ベースエンコーディングについて

Base16(16進数): 0-9とA-Fの文字を使用。各文字は4ビットを表します。カラーコードやメモリアドレスでよく使用されます。
Base32: A-Zと2-7の文字を使用。各文字は5ビットを表します。大文字と小文字を区別せず、人間が読みやすいです。
Base64: A-Z、a-z、0-9、+、/の文字を使用。各文字は6ビットを表します。バイナリデータをテキストにエンコードする際によく使用されます。
安全な整数の制限: JavaScriptは、精度の損失なく9,007,199,254,740,991(2^53 - 1)までの整数を安全に表現できます。
📚

ドキュメンテーション

双方向基数コンバーター: 10進数 ↔ Base16、Base32、Base64

基数コンバーターは、数値をある表記法から別の表記法に変換するツールです。コンピューター、URL、 データ形式は、単純な10進数をそのまま保存することはほとんどなく、Base16(16進数)Base32Base64といった、よりコンパクトで転送に安全なエンコーディングに変換して格納します。このツールは 両方向の変換に対応しています。10進数を入力するとBase16/Base32/Base64形式が表示され、エンコードさ れた値を貼り付けると10進数に変換されます。また、エンコードされた値がどの基数であるかも自動的に判定 します。

「基数」とは

位取り記数法にはそれぞれ基数(radix)があります。これは、1桁を表すために使用する記号の種類の数 です。10進数は基数10(0〜9)です。ここで扱うエンコーディングは、より多くの記号セットを使う代わりに、 より短い文字列で数値を表現します。

  • Base16(16進数) — 記号は 0-9A-F。各文字が4ビットを表します。カラーコード (#FF0000)、メモリアドレス、ハッシュ値などで広く使われています。
  • Base32 — 記号は A-Z2-7(RFC 4648)。各文字が5ビットを表します。大文字小文字を区 別せず、紛らわしい文字も含まないため、読み上げたり手入力したりしても正確に伝わります。
  • Base64 — 記号は A-Za-z0-9+/(RFC 4648)。各文字が6ビットを表します。 メールやJSONフィールドなど、テキストのみを扱うチャネルでバイナリデータを送るための標準的な方式です。

基数が大きいほど、同じ数値を表すのに必要な文字数は少なくなりますが、その分、扱う記号の種類(アルファ ベット)は多くなります。

コンバーターの使い方

このツールには2つの入力欄があり、どちらに入力しても動作します。

  • 10進数 → エンコード値。 10進数欄に正の整数を入力します。Base16、Base32、Base64での値が同時 に表示されます。
  • エンコード値 → 10進数。 エンコード値欄にBase16、Base32、またはBase64の値を貼り付けます。ツ ールが基数を自動判定し、文字の妥当性を検証したうえで10進数を返します。

範囲と検証

値はJavaScriptの最大安全整数である9007199254740991(すなわち2^53 − 1)までに制限されています。 これを超えると整数を正確に表現できなくなるため、そのまま変換を続けると誤った桁を黙って返してしまい ます。そのため、このツールは推測で処理を続けず、範囲外エラーを報告します。10進数の入力は0以上の整数 である必要があり、エンコード値の入力はその基数で有効な文字のみを使用する必要があります。無効な文字 が含まれる場合、ツールは不正な値をデコードするのではなくエラーとして検出します。

計算例

  • 10進数の255。 Base16では FF になります。255 = 15×16 + 15 であり、両方の桁が F になるため です。これが #FFFFFF が白になる理由です。3バイトすべてが最大値になっています。
  • 10進数の1000。 Base16では 3E8 になります(3×256 + 14×16 + 8 = 1000)。
  • FF のデコード。 Base16として検出され、255にデコードされます。
  • 最大値の1バイト(8ビット)は16進数で FF になります — 16進数の1文字は4ビットを表すため、1バ イトは2文字になります。同じバイトをBase32で表すにはより長い文字列が、Base64で表すにはパディング されたグループが必要になります。そのため、色やアドレスのような短い値には、読みやすい16進数(hex) が使われ続けています。

各エンコーディングの用途

  • Base16 — CSS/HTMLの色指定、MACアドレスやIPv6アドレス、暗号学的ハッシュやチェックサム、バイナ リファイルの16進ダンプ。
  • Base32 — TOTP/2FAの秘密鍵、一部のファイル共有システムやDNSベースのシステム、大文字小文字や文 字の混同を避けたい手入力・読み上げ用の識別子。
  • Base64data: URI、メール添付ファイル(MIME)、JSONやXML内への画像や証明書の埋め込み、JWT トークン。

各エンコーディングは、同じ数値の単なる表現方法の違いにすぎないため、これらの間で変換しても値その ものが変わることはありません。変わるのは、その値を書き表すのに必要な文字数と、安全に送信できるチャ ネルだけです。

🔗

関連ツール

ワークフローに役立つかもしれないさらなるツールを発見する