十六進法
16進数の数字体系は、「カラブ」と略されることが多いが、16の記号(ベース16)で構成された数字体系である。標準的な数値体系は10進数(基数10)と呼ばれ、10個の記号を使用します。0,1,2,3,4,5,6,7,8,9.16進数は、10進数と6つの余分な記号を使用します。9以上の値を表す数値記号はないので、アルファベットのA、B、C、D、E、Fが使用されます。
人間はほとんどが10進法を使っています。これは、人間の手の指が10本だからでしょう。しかし、コンピュータには、2進数(またはビット、略してビット)と呼ばれるオンとオフしかありません。2進数は、0と1の文字列にすぎません。例えば、11011011。コンピュータを扱うエンジニアは、便宜上、ビットをまとめてグループ化する傾向があります。1960年代などの以前の日には、彼らは一度に3つのビットをグループ化する(多くの大規模な10進数のように数123,456,789のように、3つにグループ化されている)。3つのビットは、それぞれがオンまたはオフになっていて、0から7までの8つの数字を表すことができます:000 = 0; 001 = 1; 010 = 2; 011 = 3; 100 = 4; 101 = 5; 110 = 6と111 = 7。
コンピュータが大型化するにつれ、ビットを3つではなく4つにまとめた方が便利になりました。これにより、記号が表す数字が2倍になり、8つの値を持つのではなく、16の値を持つことができます。16進数=6、10進数=10なので、16進数と呼ばれています。コンピュータの専門用語では、4 ビットで 1 ニブル (nybble と綴られることもあります) になります。ニブルは、記号0-9またはA-Fを使用して書かれた1つの16進数の数字です。2つのニブルはバイト(8ビット)を作ります。ほとんどのコンピュータ操作では、バイトまたはバイトの倍数(16 ビット、24、32、64 など)を使用します。16進法では、これらの大きな2進数を書きやすくしています。
10進数や8進数、その他の数字表記システムとの混同を避けるため、16進数は数字の後に"h"を、または数字の前に"0x"を付けて表記することがあります。例えば、63hと0x63は16進数の63を意味します。
16進数の値
16進数は、それぞれが2進数と簡単に比較できるため、8進数(ベース8)と似ています。16進数は4ビットの2進数コーディングを使用しています。これは、16進数の各桁が2進数の4桁と同じであることを意味します。八進数は3ビットの2進法を使用しています。
10進法では、最初の桁が1の位、左の次の桁が10の位、その次が100の位などとなります。16進法では、各桁は10ではなく16の値をとることができます。つまり、桁には1の位があり、16の位があり、次の桁が256の位になります。なので、1h=10進数では1h、10h=16進数では10h、100h=256となります。
16進数を2進数、8進数、10進数に変換した値の例。
|
変換
2進数から16進数へ
2進数から16進数に変更するには、グループ化の方法を使います。2 進数は、右から順に 4 桁のグループに分割されます。16進数から変更するには、逆の操作を行います。16進数はそれぞれ2進数に変更され、通常はグループ化が解除されます。
バイナリ | グループ化 | 六角 | |||
01100101 | 0110 | 0101 | 65 | ||
010010110110 | 0100 | 1011 | 0110 | 4B6 | |
1101011101011010 | 1101 | 0111 | 0101 | 1010 | D75A |
2進数のビット数が4の倍数でない場合は、そのようにするためにゼロを入れています。例としては、以下のようなものがあります。
- 2進数110=0110で、6進数になります。
- バイナリ 010010 = 00010010 となり、12 Hexになります。
16進数から10進数へ
16進数から10進数に変換するには、2つの一般的な方法があります。
最初の方法は、手動で変換する場合の方が一般的です。
- 16進数の各桁の10進数を使います。0~9の場合は同じですが、A=10、B=11、C=12、D=13、E=14、F=15となります。
- 以下の各ステップで変換した数字の合計を保管してください。
- 16進数の最下位の数字から始めてください。それが右端の数字です。これが合計の最初の項目になります。
- 一番下の桁を取ってください右端の数字の隣です。その桁の10進数に16を掛けてこれを足して合計します。
- 3番目に小さい桁についても同じようにしますが、162(つまり16乗、256)を掛けます。それを合計に加えます。
- 桁ごとに、それぞれの桁に16の倍数をかけて続けます。(4096、65536など)
| 場所 | |||||
6 | 5 | 4 | 3 | 2 | 1 | |
値 | 1048576 (165) | 65536 (164) | 4096 (163) | 256 (162) | 16(161) | 1 (160) |
次の方法は、ソフトウェアで数字を変換するときに、より一般的に行われています。数字が何桁の桁数を持っているかを知る必要はありませんし、16以上の掛け算をすることもありませんが、紙の上では長く見えます。
- 16進数の各桁の10進数を使います。0~9の場合は同じですが、A=10、B=11、C=12、D=13、E=14、F=15となります。
- 以下の各ステップで変換した数字の合計を保管してください。
- 有効数字(左端の数字)から始めます。これは合計の最初の項目です。
- 他の桁が存在する場合は、合計に 16 を掛けて、次の桁の小数点以下の値を加算します。
- 桁がなくなるまで上記の手順を繰り返します。
例としては、以下のようなものがあります。5Fhと3425hを10進数にする方法1
|
|
|
|
例としては、以下のようになります。5Fhと3425hを10進数にする方法2
|
|
|
|
質問と回答
Q:16進数とは何ですか?
A:16進数法は16個の記号で構成される16進数法です。
Q:10進法で使われる10個の記号は何ですか?
A:10進法で使われる10個の記号は、0、1、2、3、4、5、6、7、8、9です。
Q:16進法で使用される6つの余分な記号は何ですか?
A:16進法では、英語のアルファベットから取ったA、B、C、D、E、Fを使用しています。
Q:最近のコンピュータでは、1バイトは何ビットですか?
A:最近のコンピュータでは、1バイトは一般に8ビットを含んでいます。
Q:エンジニアやコンピュータ科学者は、4ビットの値を何と呼んでいますか?
A:エンジニアやコンピュータ科学者は、4ビットの値をニブル(nybbleと表記されることもあります)と呼びます。
Q:16進数を書くときに、他の番号体系との混同を避けるにはどうしたらよいですか?
A:16進数を書くときに他の番号付けシステムとの混乱を避けるために、数字の後に「h」または数字の前に「0x」を追加することができます。例えば、63hまたは0x63は16進数で63を意味します。