2進数の主な欠点は、大きな10進数の基数の2進文字列が非常に長くなってしまうことです。
コンピュータなどの大規模なデジタル システムで作業する場合、8、16、さらには 32 桁からなる 2 進数を見つけるのが一般的で、特に 16 または 32 ビット 2 進数の多くを扱う場合、エラーを出さずに読み書きの両方を行うことが困難になります。 これらの 4 ビットのグループは、コンピュータおよびデジタル システムで一般的に使用される、16 進数と呼ばれる別のタイプの番号付けシステムを使用します。
16進法であるため、0から15までの数字の組み合わせで16(16)種類の桁を使用します。 しかし、10、11、12、13、14、15という10進数の数字は、通常、隣り合う2つの記号で表記されるため、この表記方法では問題が生じる可能性があります。 例えば、10を16進数で表記した場合、10進数の10を意味するのか、それとも2進数の2(1+0)を意味するのか。 この問題を回避するために、10、11、…の値を識別する16進数が用意されている。
16 進法では、0 から 9 までの数字と大文字の A から F を使用して、右側の最下位桁から順に 2 進法または 10 進法の数値に相当するものを表します。
先ほど述べたように、2進数の文字列は非常に長く、読むのが困難ですが、これらの大きな2進数を偶数のグループに分割することによって、書き出しや理解をより容易にすることができます。 例えば、以下の2進数のグループは、11010101110011112がすべて束になっているときよりも、ずっと読みやすく、理解しやすくなっています。
10進数の日常的な使用では、100万や1兆といった非常に大きな数を理解しやすくするために、右側から3桁または000のグループを使用しますが、同じことがデジタルシステムにも当てはまります。 2進数を4ビットのグループに分割することで、各グループまたは4桁のセットは、「0000」(0)から「1111」(8+4+2+1 = 15)までの値を持つことができ、0から15までの合計16種類の数字の組み合わせが可能になります。 2712>
2進数についての最初のチュートリアルで、4ビットのグループを「ニブル」と呼び、16進数を生成するためにも4ビットが必要なため、16進数もニブル、または半バイトとして考えることができることを思い出してください。 また、10進法の16は2の4乗(または24)なので、2と16の間には直接的な関係があり、1つの16桁は2進数4桁に等しいので、qは「16」に等しくなります。 このため、2進数と16進数の変換は非常に簡単で、16進数では大きな2進数をより少ない桁数で書くことができます。
0~9は元の10進法のままですが、10~15はアルファベットのA~Fの大文字で表すようになり、10進法と2進法、16進法の関係は次のようになります。
16進数
10進数 | 4-です。ビット2進数 | 16進数 |
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | b |
12 | 1100 | c |
13 | 1101 | d |
14 | 1110 | e |
15 | 1111 | f |
16 | 0001 0000 | 10 (1+0) |
17 | 0001 0001 | 11 (1+1) |
4つのグループで上に続ける |
上記の元の2進数1101 0101 1100 11112を使って、これはD5CFという16進数にも変換でき、以前のように1と0が長く並ぶよりずっと読みやすく分かりやすくなりました。
このように、16進数表記にすることで、より少ない桁数でデジタル数字を書くことができ、エラーが発生する可能性も非常に低くなります。 同様に、16進数ベースの数値を2進数に戻すには、単に逆の操作を行います。
次に、16進数表記法の主な特徴は、0からFまでの16の異なるカウント桁があり、各桁には最下位ビット(LSB)から始まる16の重みまたは値があることです。 16進数と2進数を区別するために、実際の16進数の値の前に「#」(ハッシュ)または「$」(ドル記号)を付けて、#D5CF または $D5CF とします。 例えば、先の16進数は次のように表される。 D5CF16
16進数で数える
これで、2進数4桁を16進数に変換する方法がわかりましたね。 しかし、2進数が4桁以上ある場合、最後の文字Fから先を16進数でどう数えるのでしょうか。簡単な答えは、次のように別の4ビットのセットでやり直すことです。
0…to…9, A,B,C,D,E,F, 10…to…19, 1A,1B,1C,1D,1E,1F, 20, 21… など
混乱しないでください、10や20は10や20ではなく、1 + 0や2 + 0の16進法なんです。 実際、20は16進数では存在しないのです。 16進数で2つあれば、10進数の255に相当するFFまで数えることができます。 同様に、FFより大きい数を数えるには、16進数の3桁目を左に追加します。したがって、最初の3ビットの16進数は10016、(25610)、最後はFFF16、(409510)です。 4桁の16進数の最大値はFFFF16で、10進数では65,535に等しく、以下同様です。
16進数の表現
MSB | 16進数の表現 | LSB | ||||||
168 | 167 | 166 | 165 | 164 | 163 | 162 | 161 | 160 |
4.3G | 2.6G | 16M | 1M | 65k | 4k | 256 | 16 | 1 |
10進数と2進数を16進数へ変換するのにこの追加する桁数は4桁あれば非常に簡単であり、また16進数から2桁への変換も容易である。 2進数の8桁、12桁、16桁を変換します。 たとえば、110010110110012 は 14 ビットの 2 進数で、16 進数 3 桁だけでは大きすぎるが、16 進数 4 桁では小さすぎる。 答えは、4ビットの2進数またはその倍数の完全なセットができるまで、一番左のビットにさらに0を追加することです。
2進数への追加の0の追加
2進数 | 0011 | 0010 | 1101 | 1001 |
16 進数 | 3 | 2 | D | 9 |
16進数の主な利点は、非常にコンパクトで、16を基数とすることにより、与えられた数を表すために使用する桁数が、通常、2進法や10進法よりも少なくなることである。
16進数の例 No1
次の2進数1110 10102を16進数に変換してください。
2進数 = 111010102 | |||
右側からビットを4つにまとめる | |||
= | 1110 | 1010 | |
それぞれの10進数に相当するものを求めます。 各グループ | |||
= | 14 | 10 | (10進数) |
に変換する。 上の表を使って16進数 | |||
= | E | A | (in Hex) |
では、どうするか。 2進数
1110 10102の16進数は#EA16 |
16進数の例 No2
次の16進数#3FA716を2進数に、また10進数とデナリに変換し、それぞれの番号体系を下付きで表示することができます。
#3FA716
= 0011 1111 1010 01112
= (8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 32 + 4 + 2 + 1)
= 16,29510
次に10進数の16,295を表現すると、次のようになります。-
#3FA716、2進数では
0011 1111 1010 01112となります。
Hexadecimal Numbers Summary
続いて、まとめです。 16進数(Hex)は、コンピュータやデジタルシステムでよく使われ、大きな2進数の文字列を、私たちが理解しやすいように4桁の数字に置き換えたものです。 この種のデジタル番号付けシステムでは、0から9、AからFまでの16種類の数字を使用するため、「Hexadecimal」という単語は16を意味します。 2進数列を等価な16進数に変換するには、まず2進数を4ビットの集合にグループ化する必要があります。 これらの 2 進数のセットは 010 ( 00002 ) から 1510 ( 11112 ) までの任意の値を持つことができ、0 から F までの 16 進数に相当します。
2 進論理に関する次のチュートリアルでは、2 進数の全ストリングを 8 進数という別のデジタル番号体系に変換すること、またはその逆の操作を説明します。