- 2進数とか10進数の違いがわからない
- 2進数を10進数に変換する方法がわからない
- n進数からの基数変換について教えてほしい!
このような方へ、基数変換の方法をわかりやすく解説する記事です。
基数とは「基準とする数」のことで、2を基準として表した表記方法を2進法とか2進数と呼びます。
この記事では、2進数と10進数の違いや、2進数を10進数に変換するなどの基数変換についてわかりやすくご紹介します。
基本情報情報技術者試験では、「2進法で表される数字を、10進法で表し直しなさい。」のような問題がしばしば出題されています。
この「○進法」から「△進法」へ変換することを基数変換と呼びます。
そこで今回の記事では、基数変換がマスターできるようにわかりやすく解説しましたので、2進数とか10進数とか聞いたことはあるけど違いがわからなかったり、10進数から2進数へ変換の仕方がわからない方はぜひ先へお進みください。
基本情報技術者対策おすすめ講座
BizLearnで科目A試験(旧午前試験)免除!
- 累計受講者数7,429万人以上のネットラーニングが提供するオンライン講座
- 科目A試験を免除できる数少ない認定講座!
- 指導者があなたに一人専属でついてくれて質問し放題で挫折しない!
Udemyで本よりお得に試験対策!
- 複数の基本情報技術者試験講座の中から自分に合った講座が選べる
- SALE狙いで圧倒的コストパフォーマンス
- 買い切り型なのでSALEで買っておいて後で勉强もOK!
STUDYing でスキマ時間で試験合格を目指す!
- スマートフォン1つで動画も問題もテキストも模試も学習できる
- 通勤通学時間などのスキマ時間で学習できる
- 36,800と安価に受講が可能
基数とは?2進数と10進数の違いをわかりやすく解説!
10進数とか2進数とかよく聞くんですけど、進数ってなんですか?
どんな違いがあるんですか?
基数とは「一の位、十の位、百の位、それぞれの位に入って良い数の種類」のことです。
例えば、「1つの桁に入って良い数は0から9までの10個なのが10進数で、表現方法としては「基数が10で、表記方法は10進法」と呼びます。
その数の位を何個の数字で表したものか、その個数のことを基数と言います。
- 10進数・・・一つの桁を0〜9の10種類の数字で表したもの(これが一番馴染み深いですよね)
- 2進数・・・一つの桁を0と1の2種類の数字で表したもの
- n進数・・・一つの桁をn個の数字で表したもの
基数変換とは?
基数って言葉が出てきたら○進数のこと!ってのはわかりました!
じゃあ「基数変換」は○進数を△進数に変換することですか?
そのとおりです。
基数変換とは、読んで字の如く、基準となる数の種類を変更すること。すなわち、2進数から10進数へ変換することなどを表します。
以下では、具体的にどのように変換を行うのかを解説します。
基数変換するときは《重み表》を使うと便利!
基数変換を行うときは、慣れるまでは重み表を使うと便利です。
重み表とは一桁ごとの重み=○(何乗までできるか)をまとめた表です。
文字だけでは分かりづらいと思うので、実際に重み表を書いてみますイメージしてください!
2進数の重み表
2進数➡0と1だけで値を表す方法のことです。
2進数の重み表は下記のようなものです。
重み | 27=128 | 26=64 | 25=32 | 24=16 | 23=8 | 22=4 | 21=2 | 20=1 |
2進数 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
n進数の重み表を書く時、まず上の段に重み=各位に入る重さを書いていきます。2進数の場合は20、21、22、23・・・と表に書き込んでいきます。
この表を使っていくことが基数変換をするのに役立っていきます。
10進数から2進数へ基数変換する方法
まずは、10進法から2進法への基数変換を行います。
変換したい10進数の数字の中に2xが何個入るかで重み表を記入していきます。
(例題)10進法で表すと38を2進法で表すといくらになるのか。
10進法で表すと38を2進法で表すとき、以下のような重み表を作ります。
重み | 27=128 | 26=64 | 25=32 | 24=16 | 23=8 | 22=4 | 21=2 | 20=1 |
2進数 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
10進数38を2進数に変換する時 38=25+22+21なので 8bitの2進数で10進数の38を表した時は「00100110」となります。
特に指定がなければ2進数のときは8桁で表します!
だから左に00を付けた00100110になるのです!
基数変換:2進数から10進数への変換は重み表で変換
続いては2進法から10進法へ変換していきます。
(例題)2進数の01101100を10進数に変換しなさい。
再度重み表を作っていきます。
重みの行は先程と同じで、2進数の行に順番に数字を入れていくと以下のような重み表になります。
重み | 27=128 | 26=64 | 25=32 | 24=16 | 23=8 | 22=4 | 21=2 | 20=1 |
2進数 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 |
重み表を読むと、 26+25+23+22= 64 + 32 + 8 + 4 = 108
よって答えは 108 となります。
10進数から16進数への基数変換をわかりやすく解説
続いて、10進法から16進法への基数変換を行います。
16進法の特徴としては、10以上の数字も一文字で表すためにアルファベットを用いる点です。
下の表のように。10進数では表せない10から15まではアルファベットのAからFで表します。
10進数 | 16進数 |
---|---|
0 | 0 |
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
5 | 5 |
6 | 6 |
7 | 7 |
8 | 8 |
9 | 9 |
10 | A |
11 | B |
12 | C |
13 | D |
14 | E |
15 | F |
(例題)10進数の108を16進数に変換しなさい
まずは10進法で表すと 108 となる数を、16進法で表す方法を解説します。
16進法ということは、0~Fの16種類の文字を使って一つの桁を表現します。
2進法の時と同じで、重み表を作ってみるとわかりやすいです。
重み | 163=4096 | 162=256 | 161=16 | 160=1 |
16進数 | 0 | 0 | 6 | 12=C |
重みの行が、16進法版に変わります。160、161、162、163 の大きい方から何個入るかを考えます。
108 < 256 なので、162 の列までは0ですね。161 = 16 は108の中に6個入るので、161 の列には6を入れて、108 ー (16 × 6) = 12 より、
160の列には12が入ります。
12は一文字で表すとCになるので、10進数の108を16進数に変換すると6Cとなります。
(例題)16進数3Fを10進数に変換しなさい
今度は16進法から10進法への基数変換を行います。同じように重み表を作成するところから始めます。
重み | 163=4096 | 162=256 | 161=16 | 160=1 |
16進数 | 0 | 0 | 3 | F=15 |
16×3+1×15=63 となります。
2進数から16進数への基数変換をわかりやすく
2進法を16進法へ変換する方法をわかりやすく解説します。
ポイントは2進数を4桁ずつに分けて考える点です。以下の例で紹介します。
(例題)2進法で表すと01101010である数を16進法で表すとどうなるか。
2進法から16進法への基数変換をするときは以下のような重み表を作ります。。
重み | 27=128 | 26=64 | 25=32 | 24=16 | 23=8 | 22=4 | 21=2 | 20=1 |
2進数 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
16進数 | 6 | A |
24=16 なので、2進法で4桁までの数は、16進法だと1文字で表すことができます。すなわち4桁ずつ分けて考えると楽に変換できます。
2進法で01101010を16進法に変換する場合、「0110」を16進法の一文字で表し、「1010」を16進法の一文字で表したのも合わせて二文字で表せるのです。
0110 ⇒ 4 + 2 = 6
1010 = 23 + 21 = 10 ⇒ 16進法だと A
すなわち 6A と変換できます。
基数変換:2進数⇄8進数の変換は3桁ずつ考える
2進数⇄16進数と同様に2進法から8進法への変換では 8=23 より3桁ずつ考えることができます。
以下の例がわかりやすいです。
(例題)8進数137を2進数に変換せよ
以下のように一桁ずつ変換していくのがコツです。
- 7を2進法で表すと→ 7 = (22 × 1) + (21 × 1) + (20 × 1) ⇒ 111
- 3を2進数に変換→ 3 = (22 × 0) + (21 × 1) + (20 × 1) ⇒ 011
- 1を2進数に変換→ 1 = (22 × 0) + (21 × 1) + (20 × 1) ⇒ 001
よって答えは 001011111 となります。(8bitの条件がついてたら01011111)
まとめ
今回は基数とはなにか、基数変換する方法について解説していきました。
2進数と重み表をつかって基数変換をするのがこれからの応用でも役立つ変換方法となりますので、この基本をしっかりと抑えていきましょう!
また当サイトでは基本情報技術者試験に独学で合格できるように、過去問の解説や勉強方法などをまとめていますので、他の記事も読んでみてください!
]]>