メインコンテンツへスキップ

developer-tools

進数変換ツール完全ガイド:2進数・8進数・10進数・16進数の相互変換

robinhood-projects2 分で読める

進数変換ツール

2進数から36進数まで、任意の基数間で数値を変換します — 2進数、8進数、10進数、16進数など。

ツールを使う →

16進コンバーター

16進文字列をテキスト、10進数、2進数に変換するか、テキストを16進にエンコードします。ブラウザ内で動作。

ツールを使う →

2進数コンバーター

2進数をテキスト、10進数、16進数に変換するか、テキストを2進数にエンコードします。リアルタイム出力。

ツールを使う →

ASCIIコンバーター

文字、10進数、16進数、2進数、または8進数でASCIIコードを検索し、すべての表現を一度に確認できます。

ツールを使う →

進数変換ツール オンライン:開発者のための実践ガイド

#FF6B6B というCSSのカラーコードを見て「あの文字は何だろう?」と思ったことはありませんか?あるいは、0x プレフィックスだらけのネットワークダンプを読もうとして途方に暮れた経験は? こうした場面はすべて進数変換(基数変換)と関係しています。本記事では、2進数・8進数・10進数・16進数の関係を、実務ですぐに使える例とともに解説します。

なぜ複数の進数が存在するのか

人間は指が10本あるため、10進数(デシマル)で数えます。コンピュータはトランジスタの状態が「オン」か「オフ」の2択しかないため、2進数(バイナリ)で動作します。16進数(ヘキサデシマル)は2進数を圧縮するために生まれました——2進数4桁を16進数1桁に収めることができます。8進数(オクタル)は初期のUnixシステムで広く使われており、現在もファイルパーミッションの場面で登場します。

進数変換を理解すると、次のようなことができるようになります:

  • メモリアドレスの読み書き
  • ネットワークプロトコルのデバッグ
  • CSSやデザインツールでの色値の操作
  • Unix系システムのファイルパーミッションの理解
  • バイナリファイル形式や文字エンコーディングの解釈

基本例:10進数の 42

数字 42 を例に、各進数での表現を確認しましょう。

基数名称表現
1010進数42
22進数101010
88進数52
1616進数2A

2進数(101010): 各桁は2の累乗です。右から左に読むと:2 + 8 + 32 = 42。

8進数(52): 各桁は8の累乗です。5×8 + 2×1 = 42。

16進数(2A): 各桁は16の累乗です。2×16 + 10×1 = 42。文字 A は10進数の10を表します。

手計算での変換方法

10進数 → 2進数

2で繰り返し割り算し、余りを下から上に読みます:

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進数 → 16進数

16で繰り返し割り算し、余りを16進数の文字に対応させます(10=A、11=B … 15=F):

42 ÷ 16 = 2 余り 10(= A)
 2 ÷ 16 = 0 余り 2

下から読む:2A

2進数 → 16進数(ショートカット)

2進数を右から4桁ずつグループ分けし、各グループを変換します:

101010 → 0010 1010
            2    A

結果:2A。これが16進数がバイナリデータの圧縮に適している理由です。

実践例1:IPアドレスの16進数表現

ネットワークエンジニアはIPアドレスを16進数で扱うことがよくあります。IPv4アドレス 192.168.1.1 は次のように変換されます:

192 → C0
168 → A8
  1 → 01
  1 → 01

16進数表現:C0A8 0101

これはWiresharkなどのパケットキャプチャツールで表示される生のパケットデータとまったく同じ形式です。ネットワーク解析をする際、この表現を読めると大きな強みになります。

実践例2:CSSカラーコード

色 #FF6B6B は16進数のトリプレットです。各2桁が1つのカラーチャンネル(0〜255)を表します:

FF → 255(赤 Red)
6B → 107(緑 Green)
6B → 107(青 Blue)

つまり #FF6B6B は RGB(255, 107, 107)——コーラルレッドです。デザイナーが「赤チャンネル全開」と言うときは FF、「青なし」と言うときは 00 を指します。16進数カラーコードとは、3つの16進数をそのまま並べたものに過ぎません。

6B を10進数に変換:6×16 + 11 = 107。

ファイルパーミッションと8進数

chmod 755 のようなUnixのファイルパーミッションは、8進数をそのまま使います:

7 = 111(2進数)→ 読み取り + 書き込み + 実行
5 = 101(2進数)→ 読み取り + 実行(書き込み不可)
5 = 101(2進数)→ 読み取り + 実行(書き込み不可)

755 はオーナーが全権限を持ち、グループとその他は読み取りと実行のみ可能という意味です。8進数が3ビットの権限グループと完全に対応しているのは偶然ではありません。

オンラインツールで素早く変換する

手計算は学習に最適ですが、実務ではオンラインの進数変換ツールが断然便利です。FileCrankの無料ツールをご利用ください:

2A を入力するだけで、10進数 42、8進数 52、2進数 101010 が即座に表示されます。

よく使う値のクイックリファレンス

10進数2進数8進数16進数
0000000
81000108
10101012A
15111117F
16100002010
25511111111377FF

255の16進数は FF——1バイトの最大値です。CSSカラーが #000000(黒)から #FFFFFF(白)まである理由がここにあります。

まとめ

進数変換はコンピュータサイエンスの基礎知識のひとつで、デバッグ、ドキュメント読解、データの保存・転送の理解など、あらゆる場面で役立ちます。2進数はコンピュータが見る世界、16進数はエンジニアが読む世界、10進数は人間が使いやすい世界——それぞれが同じ数値の異なる表現です。

この関係を理解すれば、進数間の変換は自然にできるようになります。FileCrankの進数変換ツールで、自分の数値を使って練習してみてください。