MCPで接続 →

計算を入力してください

公式

広告

結果

16進数の値
D6
基数16
2進数の入力 11010110
10進数の値 214

2進数→16進数変換ツールとは?

このツールは、2進数(0と1だけを使う基数2の数)を16進数(基数16)に変換します。16進数はコンピューターの世界で広く使われており、1桁が2進数のちょうど4桁分を表すため、長い2進数の文字列をぐっと短く、読みやすくできるのが特長です。

使い方

入力欄に 11010110 のような2進数を入力して送信するだけ。余分な文字は自動的に取り除かれ、0と1だけが残されて、16進数の結果と参考用の10進数が表示されます。

計算式のしくみ

この変換は \(16 = 2^4\) という関係に基づいています。まず2進数の文字列を左側に0を補って桁数を4の倍数にそろえ、右端から4ビットずつのグループ(ニブルと呼びます)に分割します。各ニブルは0〜15の値を取り、それぞれが16進数の1桁に対応します。0〜9はそのまま0〜9、10〜15はA〜Fで表されます。

$$\text{Hex} = \sum_{i=0}^{n-1} b_i \cdot 2^{\,n-1-i} \;\longrightarrow\; \text{base-16}$$

8ビットの2進数を2つの4ビットのニブルに分割し、それぞれを1桁の16進数に対応させた図
4ビット(ニブル)のグループはそれぞれ1桁の16進数に対応します。

計算の具体例

11010110 を例に見てみましょう。ニブルに分割すると 11010110 になります。最初のニブルは \(8+4+0+1 = 13 \to\) D。2つ目は \(0+4+2+0 = 6 \to\) 6。したがって16進数の結果は D6 となり、これは10進数の214に相当します。

2進数をニブルにまとめて16進数に変換する手順を示した実例
実例:右からビットをまとめ、各ニブルを変換する。

バイナリニブルから16進数への照査表

16進数への変換が機能するのは、正確に4つのバイナリビット(1つのニブル)が正確に1つの16進数にマップされるためです。ニブルは\(2^4 = 16\)の異なる値を表すことができ、16進数は16個の数字(0~9とA~F)を持つため、対応は一対一です。バイナリ数を変換するには、右から4ビットのグループに分割し、必要に応じて左端のグループにゼロを追加してからパディングし、下の表を使用して各ニブルを対応する16進数に置き換えます。

4ビットバイナリ 10進数 16進数
0000 0 0
0001 1 1
0010 2 2
0011 3 3
0100 4 4
0101 5 5
0110 6 6
0111 7 7
1000 8 8
1001 9 9
1010 10 A
1011 11 B
1100 12 C
1101 13 D
1110 14 E
1111 15 F

例えば、バイナリ数1011 0110はニブル1011と0110に分割され、これらはBと6にマップされ、16進値B6を与えます。同じビットは10進では182に相当します。

主要用語の説明

ビット
デジタル情報の最小単位で、0または1の単一のバイナリ値を保持します。この言葉は「バイナリ数字」の短縮形です。
ニブル
4ビットのグループです。ニブルは\(2^4 = 16\)の可能な値を持つため、正確に1つの16進数に対応し、バイナリから16進への変換が4ビットずつ行われる理由です。2つのニブルで1バイト(8ビット)になります。
バイナリ(2進法)
0と1のみ2つのシンボルを使用する数値体系です。各位置は2の累乗を表すため、値は\(\sum b_i \cdot 2^{n-1-i}\)です。これはデジタル電子機器のネイティブ言語です。
16進法(16進数法)
16個のシンボルを使用する数値体系:0~9は値ゼロから9を表し、A~Fは値10から15を表します。各位置は16の累乗を表します。16進数は1つの16進数が4ビットに置き換わるため、バイナリを記述するコンパクトな方法です。
10進法(10進数法)
10個のシンボル(0~9)を使用する日常的な数値体系で、各位置は10の累乗を表します。変換ツールは多くの場合、10進値をなじみやすい参照ポイントとして表示します。
最下位ビット(LSB)
バイナリ数の右端のビットで、最小の位置値(\(2^0 = 1\))を持ちます。これを変更すると、数値は最小量だけ変更されます。
最上位ビット(MSB)
バイナリ数の左端のビットで、最大の位置値を持ちます。これを変更すると、数値の大きさに最も大きな影響を与えます。
先頭ゼロパディング
バイナリ数の左にゼロを追加して、その合計長が4の倍数になるようにし、それを完全なニブルに分割できるようにします。例えば、110110は16進値にマップする前に0011 0110にパディングされます(3と6、つまり36)。先頭のゼロは数値を変更しません。

よくある質問

なぜ左側に0を補うの? ニブルに区切るには、全体のビット数が4の倍数である必要があります。左側に0を加えても値は変わらず、きれいに4ビットずつのグループに分けられます。

16進数の英字は大文字・小文字で違う? いいえ。A〜Fは大文字でも小文字でも同じ値を表します。このツールでは大文字で出力します。

スペースやほかの文字を入れたらどうなる? 0と1以外の文字はすべて無視されるため、1101 0110 でも 11010110 でも同じ結果になります。

最終更新: