「エラーログに並ぶ FF 3A 2C って何?」「0b1010 や 0xFF を見て混乱したことはありませんか?そんなとき役立つのが進数変換です。コンピューターの世界では、2進数・8進数・10進数・16進数が場面に応じて使い分けられており、値を読み解いたり書き換えたりするには、進数同士を変換するスキルが必要になります。

この記事では、進数変換の基本(2進数・8進数・10進数・16進数の相互変換)を、具体例と手順つきで基礎から解説します。プログラミング初心者の方はもちろん、「なんとなく知っているけど人に説明できない」という方にもおすすめです。変換が面倒なときは、記事の後半で紹介する無料ツールが役立ちます。

進数とは?4種類の数の数え方

進数とは、数を表すときに使う「桁の繰り上がり方」のルールです。私たちが日常で使う10進数は、0〜9の10個の数字を使い、9の次で桁が繰り上がります。一方、コンピューター内部のデータはすべて2進数(0と1のみ)で処理されます。

2進数・8進数・10進数・16進数の比較

進数 使う数字 桁上がりの例 主な用途
2進数 0, 1 1 → 10 → 11 → 100 コンピューター内部、ビット演算
8進数 0〜7 7 → 10 → 11 → 12 UNIXのパーミッションなど
10進数 0〜9 9 → 10 → 11 → 12 私たちが日常で使う数
16進数 0〜9, A〜F F → 10 → 11 → 12 色コード、メモリ、MACアドレス

16進数は0〜9に加えてA〜F(10〜15)の6文字を使います。例えば FF は10進数の255です。

豆知識:16進数は「hex(ヘックス)」、2進数は「binary(バイナリ)」と呼ばれます。プログラムのコードでは、2進数を 0b1010、16進数を 0xFF のように「0b」「0x」という接頭辞をつけて表すことが多いです。

進数変換の考え方:各桁の重みを理解する

進数変換のカギは、各桁に「重み」があるという考え方です。10進数の 123 は「1×100 + 2×10 + 3×1」ですが、これは「1×10² + 2×10¹ + 3×10⁰」と同じ意味です。つまり、右から数えてn番目の桁は「基数の(n−1)乗」の重みを持ちます。

このルールを応用すると、任意の進数を10進数に変換できます。2進数 1010 を例に見てみましょう。

桁の位置 2³ 2² 2¹ 2⁰
重み(10進数) 8 4 2 1
2進数の値 1 0 1 0
  • 1×8 + 0×4 + 1×2 + 0×1 = 10

つまり、2進数の 1010 は10進数の 10 です。

10進数から2進数へ変換する手順

10進数を2進数に変換するには、2で割り続けて余りを並べる方法が基本です。例として10進数の 42 を変換してみます。

計算 商 余り
42 ÷ 2 21 0
21 ÷ 2 10 1
10 ÷ 2 5 0
5 ÷ 2 2 1
2 ÷ 2 1 0
1 ÷ 2 0 1

余りを下から上へ読むと 101010。つまり、10進数の42は2進数で 101010 です。

桁区切りのコツ:2進数は4桁ごと、16進数は2桁ごとに区切ると読みやすくなります。例:101010 → 0010 1010。実はこの4桁のまとまりが16進数の1桁に対応しています。

2進数と16進数の変換は「4桁ずつ」がポイント

2進数と16進数の変換は、プログラミングで最も頻繁に登場します。しかも特別な計算は不要で、2進数を4桁ずつ区切って対応表に当てはめるだけです。2進数の4桁は16進数の1桁(0〜15)とちょうど一致するからです。

対応表

2進数(4桁) 16進数 2進数(4桁) 16進数
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

変換の例:101010 → 16進数

  1. 4桁ずつに区切る:0010 1010(足りない桁は先頭に0を足す)
  2. 対応表で置き換える:0010 → 2、1010 → A
  3. 結果:2A

逆に16進数から2進数へは、各桁を4桁の2進数に置き換えるだけです。3F → 0011 1111 → 111111(先頭の0を省略)。

注意:2進数を10進数に変換するときに、桁を数え間違えるミスがよくあります。右端が2⁰(=1)であることを忘れずに。また16進数の A〜F は大文字・小文字どちらでも同じ値です。

進数変換が必要になる場面

進数変換は試験問題だけでなく、実務でも頻繁に登場します。

  • プログラミングのデバッグ: メモリダンプやエラーログに並ぶ16進数の値を読み解く
  • ビット演算: フラグ管理やマスク処理で、2進数の桁を意識する
  • 色コードの確認: #FF8800 のようなカラーコードを、10進数のRGB値(255, 136, 0)に対応づける
  • ネットワーク・機器設定: MACアドレス(16進数)とIPアドレス(10進数)の対応確認
  • UNIXのパーミッション: chmod 755 の7は2進数で 111(読み書き実行すべて許可)

学習のコツ:いきなり全部を覚えようとせず、「0〜15の16進数」と「2の累乗(1, 2, 4, 8, 16, 32, 64, 128, 256)」をまず覚えましょう。この2つを押さえると、多くの変換が暗算でできるようになります。

進数変換ツールの使い方

手計算で覚えたら、実際の変換はツールに任せるのが効率的です。Tools Hubの進数変換ツールなら、2進数・8進数・10進数・16進数を、入力と同時にすべての基数へ自動変換できます。

1

数値を入力

変換したい数値(例:`101010`)と、その基数(例:2進数)を選択します。

2

他の基数の結果を確認

10進数・16進数などへの変換結果が自動で表示されます。

3

コピーして利用

必要な値をコピーして、コードやドキュメントにそのまま使えます。

この記事で紹介したツール

進数変換ツール

2進数・8進数・10進数・16進数を相互変換。巨大な整数も桁落ちなく正確に変換します。

使ってみる

まとめ

  • 進数は「桁の繰り上がり方」のルール。2進数・8進数・10進数・16進数が使われる
  • 10進数への変換は「各桁の重み(基数の累乗)」を掛けて足す
  • 10進数から2進数へは「2で割り続けて余りを下から読む」
  • 2進数と16進数の変換は「4桁ずつ区切って対応表に当てはめる」だけ
  • 16進数のA〜Fは10〜15に対応。FF = 255
  • 手計算の確認にはTools Hubの進数変換ツールが便利

最初は戸惑う進数変換も、4桁対応表と2の累乗を覚えればぐっと身近になります。変換結果が合わないときは、ぜひツールで答え合わせをしてみてください。

よくある質問

2進数と16進数の変換はどうやるのが簡単ですか?

2進数を右から4桁ずつに区切り、それぞれを対応表で16進数の1桁に置き換えます。例えば 101010 は 0010 1010 に区切って 2A になります。逆は16進数の各桁を4桁の2進数にするだけです。

10進数を2進数に変換する方法は?

2で割り続けて余りを記録し、最後に余りを下から上へ並べます。例えば42は、余りが下から 101010 となり、2進数では 101010 です。

16進数のA〜Fは何を表していますか?

10〜15の数値を表します。A=10、B=11、C=12、D=13、E=14、F=15です。例えば FF は10進数の255になります。

小数を含む数値も進数変換できますか?

Tools Hubの進数変換ツールは整数のみに対応しています。小数点を含む入力はエラーになります。小数の変換が必要な場合は、小数点以下の桁を2(または16)倍していく方法で手計算できます。

参考資料