基数変換ツール

結果

2から36までの好きな基数で数値を入力すると、このツールが他の代表的な基数、つまり2進数、8進数、10進数、16進数での等価な表記を表示します。数字がアルファベットまで及ぶ36までのカスタム基数にも対応します。符号付き整数を扱えるほか、基数をまたいで値を正確に表したいときは小数部分もオプションで扱えます。

変換ツールの使い方

  1. 1

    変換元の基数を選ぶ

    入力する数値がどの基数で書かれているかをツールに伝えます。

  2. 2

    値を入力する

    10までの基数では0~9を、値が10~35になる桁にはA~Zを使います。

  3. 3

    変換先の基数をまとめて読む

    ツールは2進数、8進数、10進数、16進数、そして選んだ任意のカスタム基数へ変換します。

  4. 4

    計算過程を確認する

    各桁の位取りを分解して示すので、変換結果の検算にも、人に教えるときにも使えます。

代表的な基数と使える数字

基数 名称 使う数字
2 2進数 0、1
8 8進数 0-7
10 10進数 0-9
16 16進数 0-9、A-F
32 Base32 0-9、A-V(RFC 4648)
36 英数字 0-9、A-Z

位取り展開による変換

16進数の 1A3 は次の値になります。

1 · 16² + 10 · 16¹ + 3 · 16⁰ = 256 + 160 + 3 = 419₁₀

逆向きに変換するときは、変換先の基数で割り算を繰り返し、余りを集めます。

419 / 16 = 26 余り 3
 26 / 16 = 1  余り 10 (A)
  1 / 16 = 0  余り 1

余りを下から上へ読むと 1A3 になります。

プログラマー向けクイックリファレンス

  • 2進数から16進数へ: 右から4ビットずつまとめます。11010110D6
  • 2進数から8進数へ: 右から3ビットずつまとめます。11010110326
  • 16進数から2進数へ: 16進数の1桁がちょうど4ビットになります。
  • 符号付き整数: 多くの変換は符号なしを前提にしています。2の補数を使う場合はビット幅が効いてきます。0xFF は符号なしなら255ですが、8ビットの符号付き整数なら -1 です。

意外な理由で使われる基数

  • 12進数(duodecimal) は、12が約数を多く持つことから、人が数える単位として提案されたことがあります。
  • 20進数(vigesimal) はマヤ数字やヨルバ数字の土台になっています。
  • 60進数(sexagesimal) はバビロニア数学から受け継がれ、時間と角度の測定にいまも生き残っています。

よくある質問

36進数は、大文字と小文字を区別せずに数字0~9と英字A~Zだけで表せる、いちばん大きな一般的な基数だからです。62進数は大文字と小文字を別々に数えて範囲を広げますが、標準化はあまり進んでいません。

はい、マイナス記号のついた符号付きの値として扱います。ただしビット単位の2の補数表現(プログラミングで重要になります)では、ビット幅を指定する必要があります。同じ10進数の -1 が、0xFF(8ビット)、0xFFFF(16ビット)、0xFFFFFFFF(32ビット)と変わってしまうからです。

できますが、注意が必要です。10進数の 0.1 は2進数では循環小数(0.00011001100…)になります。浮動小数点の計算にわずかな誤差が出るのはこのためです。このツールは、指定した桁数まで小数部分を表示します。

バイナリをテキストに変換するエンコード方式であって、ふつうの意味での基数ではありません。3バイト(24ビット)を、64文字の文字集合から選んだ4つのASCII文字として符号化します。メールのようにテキストしか通せない経路でバイナリを送るときに便利です。

関連ツール

このツールは他の言語でも利用できます