エンコーディング 🔒 ブラウザ内で動作 — データは送信されません

進数変換ツール

2進数、10進数、16進数、8進数、36までの任意の基数の間で変換し、テキストを2進数や16進数に、またその逆にも変換します。

進数変換ツール — 2進数・10進数・16進数・8進数

数値を入力すると、2進数、8進数、10進数、16進数の表記が同時に表示され、さらに2から36までの任意の基数でも確認できます。接頭辞も理解するので 0xFF、0b1010、0o17 はそのまま入力でき、どんな大きさの数値も正確に変換され、負の数では2の補数も表示されます。2つ目のタブでは、テキストを2進数や16進数のバイト列に変換したり、その逆を行ったりできます。

16進ダンプを読む、8進数でファイルのパーミッションを設定する、ビットマスクを確かめる、2進数の宿題に答えるといった日常的な場面で使えるツールで、すべてブラウザー内で動作します。

数値を変換する手順

  1. 数値を入力します。入力の基数が自動(0x、0b、0o、または10進数)のときは接頭辞で基数が決まります。そうでなければ基数を選んでください。
  2. 2進数、8進数、10進数、16進数の各行を読みます。入力に合わせて更新されます。
  3. 読みやすくするには桁を区切るにチェックを入れ、36までの任意の基数を見たいときは追加で表示する基数を設定します。
  4. どの行も、横のボタンでコピーできます。

よく使う4つの基数

基数使う数字例(10進数の255)使われる場面
2進数(2)0と111111111ビット、フラグ、マスク、ネットワーク
8進数(8)0〜7377755のようなUnixのファイルパーミッション
10進数(10)0〜9255日常の数値
16進数(16)0〜9とA〜FFF色、メモリーアドレス、バイトダンプ、ハッシュ

変換の仕組み

b進数の数値は、各桁の数字にbのべき乗を掛けたものの和です。2進数の 101010 は 1×32 + 0×16 + 1×8 + 0×4 + 1×2 + 0×1 = 42 です。逆向きの変換では、基数で割り続けて余りを逆順に読みます。42 ÷ 2 の余りは0、21 ÷ 2 は1、10 ÷ 2 は0、5 ÷ 2 は1、2 ÷ 2 は0、1 ÷ 2 は1となり、101010 が得られます。16は2の4乗なので、16進数と2進数は密接に結びついています。16進数の1桁はちょうど4ビットにあたり、F は 1111、2A は 0010 1010 です。

桁数の制限なし

多くの変換ツールは、JavaScriptの数値で正確に表せる最大の整数である2の53乗を超えると黙って丸めたり、64ビットで止まったりします。このツールは任意精度の整数を使うため、128ビットのID、16進数で書かれた256ビットの鍵、2の64乗(18446744073709551616)も1桁ずつ正確に変換します。結果の下の行には、入力した数値のビット長とバイト長が表示されます。

負の数と2の補数

負の数を入力すると、各行にはマイナス記号付きの値が表示され、さらに2つの行でコンピューターがその値をどう格納するかが示されます。つまり、8、16、32、64、128ビットのうち収まる最小の幅での2の補数です。-1 は8ビットで 11111111 または FF、-129 には16ビットが必要で、FF7F になります。符号付き整数が負のとき、デバッガーや16進ダンプに表示されるのがこの値です。

テキストと2進数の相互変換

テキストタブは、テキストをそれを表すUTF-8のバイト列に変換します。テキスト → 数値を選んで2進数、16進数、10進数、8進数のいずれかを指定すると、Hi は 01001000 01101001 や 48 69 になります。基本的な英字以外の文字は1文字あたり2〜4バイトになり、たとえば é は C3 A9 です。数値 → テキストは逆向きの変換で、スペースやカンマで区切ったバイト列も、固定幅でつなげて書いたバイト列も受け付けます。

入力のヒント

  • 数値の中のスペース、アンダースコア、アポストロフィは無視されるため、1_000_000 も FF FF も入力できます。
  • 9より大きい数字はAからZの英字で表し、大文字・小文字のどちらでも構いません。36進数までの基数はこうして書き表します。
  • 変換できるのは整数だけです。0.1のような小数は別の基数では正確に表せないことが多く、結果が丸められてしまうためです。
  • 2進数の2のように、選んだ基数に存在しない数字は、読み飛ばさずにエラーとして報告されます。

関連ツール

16進数で書かれた色には、カラー変換ツールが #FF8800 をRGBやHSLなどに変換します。ファイルや文字列を2進数や16進数ではなくBase64で扱いたいときは、Base64エンコーダーを使ってください。ひとつの作業に絞ったタスク別ページからも、この変換ツールを開けます:2進数を10進数に変換、10進数を2進数に変換、16進数を10進数に変換、テキストを2進数に変換。