33-02.数と表現(基数変換)

スポンサーリンク

基数とは?

基数とは、1桁で表現できる数のことです。

具体的に、2進数は1桁で『0』と『1』の2つの数を表現できるので、基数は『2』です。同様に、10進数、8進数、16進数の基数はそれぞれ、10、8、16になります。つまり、N進数の基数はNです。

スポンサーリンク

基数変換とは?

2進数から10進数など、別の基数の進数に変換すること基数変換と呼びます。

※以降、基数がNのN進数を\((●)_N\)で表記します。

2進数からN進数(10進数/8進数/16進数)への基数変換

2進数からN進数(10進数/8進数/16進数)への基数変換は、次の計算により実施します。

基数変換前基数変換後基数変換の方法
2進数10進数一の位から順に2^0, 2^1,2^3・・・を掛けて足し算
※2^n:2のn乗
8進数『3桁』に区切り、2進数→10進数→8進数に変換
16進数『4桁』に区切り、2進数→10進数→16進数に変換

2進数から10進数への基数変換

2進数から10進数への基数変換は、2進数の一の位から順に\(2^0、2^1、2^3・・・\)を掛けて足し算をします。

\((1001)_2
\\~→(2^0×1)+(2^1×0)+(2^2×0)+(2^3×1)
\\~=(1×1)+(2×0)+(4×0)+(8×1)
\\~=1+0+0+8
\\~=(9)_{10}\)

2進数から8進数への基数変換

2進数から8進数への基数変換は、2進数を一の位から『3桁』で区切り、2進数→10進数→8進数に変換し、数字を合わせます

2進数を3桁で区切った際に、足りない桁は0で補います。

\((011)_2
\\~→(2^0×1)+(2^1×1)+(2^2×0)
\\~=(1×1)+(2×1)+(4×0)
\\~=1+2+0
\\~=(3)_{10}
\\~=(3)_{8}・・・①\)

\((010)_2
\\~→(2^0×0)+(2^1×1)+(2^2×0)
\\~=(1×0)+(2×1)+(4×0)
\\~=0+2+0
\\~=(2)_{10}
\\~=(2)_{8}・・・②\)

したがって、①と②の数字を合わせると、
\((10011)_2=(23)_8\)
となる。

10進数から8進数への基数変換が分からない場合は、『33-01.数と表現(2進数/10進数/8進数/16進数)』の関係表を復習しましょう。

2進数から16進数への基数変換

2進数から16進数への基数変換は、2進数をーの位から『4桁』で区切り、2進数→10進数→16進数に変換し、数字を合わせます。

2進数を4桁で区切った際に、足りない桁は0で補います

\((1010)_2
\\~→(2^0×0)+(2^1×1)+(2^2×0)+(2^3×1)
\\~=(1×1)+(2×1)+(4×0)+(8×1)
\\~=0+2+0+8
\\~=(10)_{10}
\\~=(A)_{16}・・・①\)

\((0001)_2
\\~→(2^0×1)+(2^1×0)+(2^2×0)+(2^3×0)
\\~=(1×1)+(2×0)+(4×0)+(8×1)
\\~=1+0+0+0
\\~=(1)_{10}
\\~=(1)_{16}・・・①\)

したがって、①と②の数字を合わせると、
\((11010)_2=(1A)_{16}\)
となる。

10進数から16進数への基数変換が分からない場合は、『33-01.数と表現(2進数/10進数/8進数/16進数)』の関係表を復習しましょう。

N進数(10進数/8進数/16進数)から2進数への基数変換

N進数から2進数への基数変換は、次の計算により実施します。

基数変換前基数変換後基数変換の方法
10進数2進数2で割り、最後の商と余りを並べる
8進数8進数の1桁を『3桁』の2進数に変換し、数字を合わせる
16進数16進数の1桁を『4桁』の2進数に変換し、数字を合わせる
(A~Fは、10進数に置き換え、2進数に変換)

10進数から2進数の基数変換

10進数から2進数の基数変換には、10進数を2で割り続けた余りと最後の商を一の位から順番に並べます。

\(9÷2=4~余り 1・・・①
\\4÷2=2~余り 0・・・②
\\2÷2=1(④)~ 余り 0・・・③\)

したがって、
\((9)_{10}=(④③②①)_2=(1001)_2\)

8進数から2進数の基数変換

8進数から2進数への基数変換は、8進数の1桁→10進数→『3桁』の2進数に変換し、数字を合わせます。

8進数の1桁を2進数に基数変換した際に、足りない桁はで補います。

\((3)_8=(3)_{10}
\\3÷2=1(②)~余り 1・・・①\)
よって、
\((3)_8=(0②①)=(011)_2\)

\((2)_8=(2)_10
\\2÷2=1(②)~余り 0・・・①\)
よって、
\((3)_8=(0②①)=(010)_2\)

したがって、
\((23)_8
=(010011)_2=(10011)_2\)

16進数から2進数の基数変換

16進数から2進数への基数変換は、16進数の1桁→10進数→『4桁』の2進数に変換し、数字を合わせます。

\((A)_{16}=(10)_{10}
\\10÷2=5 ~余り 0・・・①
\\5÷2=2 ~余り 1・・・②
\\2÷2=1 (④)~余り 0・・・③\)
よって、
\((A)_{16}=(④③②①)_2=(1010)_2\)

\((1)_{16}=(1)_{10}
\\1÷2=0(②)~余り 1・・・①\)
よって、
\((1)_{16}=(00②①)=(0001)_2\)

したがって、
(\(1A)_{16}=(00011010)_2=(11010)_2\)

【補足】2進数の小数→10進数

2進数の小数から10進数への基数変換には、2進数の小数第一位から順に、\(2^{-1} 、2^{-2} 、2^{-3}・・・\)を掛けて足し算します。

\((11.101)_2
\\~→(2^1×1)+(2^0×1)+(2^{-1}×1)+(2^{-2}×0)+(2^{-3}×1)
\\~=(2×1)+(1×1)+(0.5×1)+(0.25×1)+(0.125×1)
\\~=2+1+0.5+0+0.125
\\~=(3.625)_{10}\)
スポンサーリンク

【まとめ】数の表現(基数変換)

それでは最後におさらいをしておきましょう。

基数変換前基数変換後基数変換の方法
2進数10進数一の位から順に2^0, 2^1,2^3・・・を掛けて足し算
※2^n:2のn乗
8進数『3桁』に区切り、2進数→10進数→8進数に変換
16進数『4桁』に区切り、2進数→10進数→16進数に変換
10進数2進数2で割り、最後の商と余りを並べる
8進数8進数の1桁を『3桁』の2進数に変換し、数字を合わせる
16進数16進数の1桁を『4桁』の2進数に変換し、数字を合わせる
(A~Fは、10進数に置き換え、2進数に変換)
この記事が気に入ったらフォロー
ぽん之助

20代サラリーマン、前職4年間で20個以上の資格に合格。ホワイト企業に転職を成功。
実体験を元に資格や勉強、転職、キャリアアップ、副業について、『ぽんぱす』で発信しています。
【保有資格】ネットワークスペシャリスト、情報処理安全確保支援士、CCNP、電気通信主任技術者(伝送/線路)、工事担任者総合種、AWS(SAA)その他多数。

ぽん之助をフォロー
ITパスポート
スポンサーリンク
ぽん之助をフォロー
ぽんぱす

コメント

タイトルとURLをコピーしました