進数変換(2進・8進・10進・16進)

数値を2進数・8進数・10進数・16進数の間で相互変換します。桁数の大きな整数もBigIntで誤差なく変換します。

進数変換ツールとは?2進・8進・10進・16進の関係を理解する

進数変換ツールは、2進数・8進数・10進数・16進数のいずれかで数値を入力するだけで、残り3つの基数での表記を一括で確認できる無料ツールです。プログラミングやネットワーク設定、電子工作などでは同じ数値を異なる基数で扱う場面が多く、手計算での変換は桁数が増えるほどミスが起きやすくなります。本ツールは入力値を検証したうえで即座に変換結果を表示するため、電卓アプリや紙の換算表を使わずにその場で確認できます。

基数変換の仕組み自体はシンプルで、どの基数も「桁の重み × 各桁の数字」の総和として同じ数値を表現しているにすぎません。10進数の255は2進数で11111111、8進数で377、16進数でFFと表記が変わりますが、指し示す量はまったく同じです。本ツールはJavaScriptのNumber型ではなくBigInt(桁数に制限のない整数型)で計算しているため、2の53乗を超えるような非常に大きな整数でも誤差なく正確に変換できます。

進数変換ツールの使い方

  1. 入力する数値の基数を選ぶ 今から入力する数値が2進数・8進数・10進数・16進数のどれで書かれているかをプルダウンから選びます。
  2. 数値を入力する 選んだ基数で使える文字だけを入力欄に入力します。16進数はA〜Fの英字も使用できます。
  3. 不正な文字が無いか確認する 選択した基数に対して使えない文字が含まれている場合はエラーメッセージが表示されるため、入力を修正します。
  4. 各基数への変換結果を確認する ボタン操作は不要で、2進数・8進数・10進数・16進数すべての表記が自動的に一覧表示されます。
  5. 別の数値を続けて変換する 入力欄の値や基数を変更すると、結果が即座に再計算されるため、複数の値を連続して調べられます。

使いこなすためのヒント

  • 16進数を入力する場合、`0x` などの接頭辞は付けずに数字部分のみ(例: `FF`)を入力してください。大文字・小文字どちらでも認識します。
  • 本ツールはBigIntを使って計算するため、JavaScriptのNumber型では誤差が生じる桁数の大きい整数(2^53を超える値)も正確に変換できます。
  • プログラミングでよく使う16進数のカラーコード(例: `#FF0000`)や、ビット演算の確認に2進数表記を使う場面で活用できます。
  • 8進数はUnix系OSのファイルパーミッション(例: `755`)でよく使われる表記です。10進数・2進数と見比べると権限の意味が理解しやすくなります。

進数変換ツールの活用シーン

プログラミング学習・演習問題の検算

情報科学の授業や資格試験で出題される基数変換の演習問題を解いたあと、自分の計算結果が正しいかをすぐに検算できます。

ビットマスク・カラーコードの確認

ビット演算のフラグ設計や、CSS・デザインツールで使う16進数カラーコード(例: `#FF0000`)の中身を2進数表記に直して、どのビットが立っているかを確認できます。

ネットワークアドレス・サブネット計算の下調べ

IPアドレスやサブネットマスクを2進数表記に変換し、ネットワーク部とホスト部の境界を確認する際の下準備として使えます。

Unixファイルパーミッションの確認

`chmod 755` のような8進数のパーミッション値を2進数に変換し、読み取り・書き込み・実行の各権限がどう組み合わさっているかを視覚的に把握できます。

大きな整数を扱うシステム開発でのデバッグ

64ビット整数など桁数の大きい値をログやメモリダンプで16進数のまま確認したいとき、誤差なく10進数へ変換して実際の数量感を掴めます。

進数変換に関する用語集

2進数(Binary)
0と1の2種類の数字だけで数値を表現する記数法です。コンピューターの内部では電圧の高低やスイッチのオン・オフに対応させて扱われています。
8進数(Octal)
0〜7の8種類の数字で数値を表現する記数法です。2進数3桁とちょうど対応するため、古いコンピューターやUnix系OSのファイルパーミッションで使われています。
10進数(Decimal)
0〜9の10種類の数字を使う、私たちが日常的に使っている記数法です。本ツールでは他の基数からの変換結果として、また入力値としても扱えます。
16進数(Hexadecimal)
0〜9とA〜Fの16種類の文字で数値を表現する記数法です。2進数4桁とちょうど対応するため、メモリアドレスやカラーコードなどコンピューター内部の値を人間が読みやすい形で表す際によく使われます。
基数(Radix)
ある記数法において、1桁で表現できる数字の種類の数のことです。2進数の基数は2、8進数は8、10進数は10、16進数は16になります。
BigInt
JavaScriptにおいて、桁数に制限なく整数を正確に扱えるデータ型です。通常のNumber型では2の53乗を超える整数に誤差が生じますが、BigIntを使うことでどれだけ桁数が大きくても正確な変換ができます。
桁の重み
数値のある桁が全体の値に対して持つ大きさのことです。例えば10進数の百の位は「100」という重みを持ち、基数変換はこの重みと各桁の数字を掛け合わせて合計することで成り立っています。
ビットマスク
特定のビット位置だけを取り出したり変更したりするために使う2進数のパターンのことです。16進数やカラーコードの内訳を確認する際、2進数表記に変換するとどのビットが有効かが把握しやすくなります。

よくある質問

これらはすべて数値を表現する際の「基数(底)」の違いです。10進数は0〜9の10種類の数字を使う私たちに馴染み深い表記、2進数は0と1の2種類のみでコンピューターの内部処理に使われる表記、8進数は0〜7、16進数は0〜9とA〜Fを使う表記で、コンピューター科学や電子工学で頻繁に使われます。

16進数は1桁で4ビット(2進数4桁分)をちょうど表現できるため、2進数のデータを人間が読みやすい形で圧縮して表記できるという利点があります。メモリアドレスやカラーコード(`#RRGGBB`)、文字コードなど、コンピューター内部のビット列を扱う場面で広く使われています。

一般的な電卓やJavaScriptのNumber型を使った変換では、2の53乗(約900兆)を超える整数で誤差が生じることがあります。本ツールはBigInt(桁数無制限の整数型)を使って計算しているため、どれだけ桁数が大きい整数でも誤差なく正確に変換できます。

8進数は主にUnix系OS(Linux・macOS等)のファイルパーミッション表記(例: `chmod 755`)で使われています。各桁が「読み取り(4)・書き込み(2)・実行(1)」の権限の組み合わせを表しており、8進数1桁で所有者・グループ・その他ユーザーそれぞれの権限を簡潔に表現できます。
ツールくん

余談ですが ― なぜコンピューターは2進数で動くのか

コンピューターが2進数(0と1)を基本としているのは、電子回路が「電圧が高い/低い」「スイッチがオン/オフ」という2つの状態を安定して区別しやすいためです。10進数のように10段階の電圧レベルを正確に識別する回路を作るよりも、2つの状態だけを扱う回路の方がノイズに強く、部品も単純にできるという実用上の理由から、現代のほぼすべてのコンピューターが2進数を採用しています。

16進数がプログラミングで重宝される理由は、2進数4桁(0000〜1111)がちょうど16進数1桁(0〜F)に対応するという数学的な性質にあります。例えば1バイト(8ビット)のデータは16進数でちょうど2桁(`00`〜`FF`)で表現でき、2進数で書くと8桁になる情報を人間にとって読みやすい長さに圧縮できます。

8進数は歴史的には、初期のコンピューター(PDP-8等、1960年代)が12ビットや36ビットなど3の倍数のビット幅を採用していた名残から広まったとされ、当時は8進数の方が2進数との対応が扱いやすい場面がありました。その後コンピューターが8ビット・16ビット・32ビット単位(4の倍数)を主流に採用するようになると、8進数より16進数の方が実用上便利になり、現在では16進数が主流になっています。ただしUnixのファイルパーミッションのように、8進数が今も現役で使われている場面も残っています。