公開日2021.12.22
最終更新日2022.10.05
はじめに
みなさんは、基数変換の3つの方法を知っていますか?
その方法は次の3つになります。
- 桁の重み表を使って基数変換
- 余りを出し続けて基数変換
- 桁の重みを分解して基数変換
この記事では、基数変換初心者向けにわかりやすくやり方を書いてみました。
今回は10進数から2進数に基数変換する際に、これらの方法のやり方と、どの方法が一番楽にできるかを比べてみたいと思います。
ズバリ一番楽にできる方法は「余りを出し続けて基数変換」だと思います。どうしてそう思ったのかも合わせてまとめていきます。
そもそも基数変換とは?
そもそも基数変換とは、何なのかご存知でしょうか?
というか基数って何?と思った方もいるのではないでしょうか?
基数変換はITパスポート試験や基本情報技術者試験に出題される内容ですので、バッチリおさえておいて点数を稼ぎたい内容ですね。
IPA|ITパスポート試験
IPA|基本情報技術者試験
ITパスポート試験の出題範囲はこちらの記事をチェックしてみてください!
では、さっそく行きましょう。
基数とは、桁上がりの基準となる数です。10進数は10になるときに桁が上がるので、10進数の基数は「10」です。同様に、2進数の基数は「2」、16進数の基数は「16」です。
高橋京介【令和3年度版】いちばんやさしいITパスポート 絶対合格の教科書+出る順問題集より引用
なお、どの表記法であっても、表記が異なるだけで、本質的に表している値は同じです。
つまり、書き方が違うだけで同じ意味を表している数値なので、下図のようにお互いに変換することができます。
これを基数変換といいます。
基数変換が何なのか理解できました。
でも基数変換って「いつ、どんな時に使うの?」と思いませんか?
コンピュータの頭脳は集積回路(IC:Integrated Circuit)と呼ばれる電子部品で構成されているのですが、この集積回路は電圧が高いか、低いかの2通りしか判別できません。
高橋京介【令和3年度版】いちばんやさしいITパスポート 絶対合格の教科書+出る順問題集より引用
このため、コンピュータの世界では基本的に、電圧が低い状態を「0」、電圧が高い状態を「1」とする2進数ですべての処理が行われています。
つまり、私たちが数字を数えるときは「0」「1」「2」「3」「4」「5」「6」「7」「8」「9」の数字を扱って表現するのが得意ですが、コンピュータは「0」「1」の数字を扱って表現するのが得意です。
そのため、私たちが、コンピュータが扱う得意な表現方法を理解するために基数変換が必要になります。
では、次から基数変換のやり方についてそれぞれ見ていきましょう。
桁の重み表を使って基数変換
「桁の重み表を使って基数変換」は、実際に表を書いて計算することで基数変換します。
「桁の重み」とは、桁が変わる数字のことを言います。
10進数は「1」「10」「100」「1000」「10000」…といったように10倍すると桁が増えます。
2進数の場合は、下図で見ると、10進数の値を2倍するごとに2進数では桁が増えています。これが「桁の重み」です。
つまり、2進数の桁の重みは、「1」「2」「4」「8」「16」…となります。
ちなみに16進数の桁の重みは、「1」「16」「256」「4096」…となります。
では実際に問題を解いてみましょう。
今回は、10進数54を2進数に基数変換します。
桁の重み表は以下のようになります。
10進数54を2進数に変換すると、110110になります。
では、表をじっくり見てみましょう。
行は3行、2行目は桁の重み、3行目は商を記入します。
1列目は、左から基数変換する数値を記入し、計算した余りを記入していきます。
感想
- 表を書くのに手間がかかる。
- 余りの数値が大きい場合に計算が面倒。
「桁の重み表を使って基数変換」は表を書くので線とか数字とかいろいろ書かなきゃいけないので、非常に手間がかかりますね。できるだけ時間をかけずに基数変換できるのがやっぱり理想ですよね。
特に試験なんかでは、時間が勝負ですので、なるだけ時間はかけたくありません。
おまけに余りの数値が大きくなると、それを見ただけで「計算したくないっ!」って思いませんか?
私は、そっとペンを置きたくなります…。
感想をまとめると「桁の重み表を使って基数変換」は、
手間がかかって面倒!余りが大きいと計算が面倒!
ということであまり実践したくない方法でした。
余りを出し続けて基数変換
「余りを出し続けて基数変換」は、例えば、10進数の数値を2進数に基数変換する場合は、数値を2で割って余りを出し続けて、計算する方法です。
ここでも10進数54を2進数に基数変換していきます。計算のやり方は以下のようになります。
この方法は、基数変換したい数値を2で割って商と余りを出し、出た商をさらに2で割って余りを出す、という作業を商が0になるまで繰り返し計算することで基数変換できます。
感想
- 余りが0か1なので計算が楽。
- 作業が計算のみなので、手間が少ない。
「余りを出し続けて基数変換」は、簡単!楽!という一言に尽きてしまいました。
余りが0か1なので、計算がすごく楽ですね。
おまけに作業が計算だけなので、余計なことを考える必要がなく手間が少ない!
試験の時には早く回答したいので理想の計算方法かもしれませんね。
まとめると、単純で手間が少なくわかりやすい方法だと感じました。
桁の重みを分解して基数変換
「桁の重みを分解して基数変換」は、10進数を桁の重みで分解し、2進数にして計算する方法です。
ここでも10進数54を2進数に基数変換してみます。計算方法は、以下のようになります。
「桁の重みを分解して基数変換」のやり方は、まず54の桁の重みを分解すると、54=32+16+4+2になります。分解した数値を2進数に変換するとそれぞれ、32は100000、16は10000、4は100、2は10となります。これらの変換した数値を足すと、答えは110110となります。
感想
- 分解する際の計算が少々面倒。
- 分解した後の計算は楽。
- 桁の重みの数値を覚えれば、より計算が速くなる。
「桁の重みを分解して基数変換」は、分解した後の計算は楽ではあるのですが、分解する際に、どの数値とどの数値を足せばいいのか考えるのが面倒に感じました。
あとは、桁の重みの数値を覚えていればより早く計算できるかもしれませんが、暗記するのは面倒ですね…。
いろんな問題を解いて自然に覚えてきたときに試してみてもいいかもしれません。
まとめるとこの方法は、分解するときの計算で時間がかかってしまうかもしれません。数値が大きくなるほど、他の方法よりも計算が難しくなって時間がかかってしまいそうです。
ある程度基数変換ができるようになってから試してみるとよいかもしれませんね。
初心者は余りを出して基数変換!
「桁の重み表を作成して基数変換」は、表を書いた上で計算を行わないといけないので、非常に手間がかかります。また、大きい数字を基数変換する際に計算がやや面倒です。ミスをしてしまう可能性もありそうです。
「余りを出し続けて基数変換」は、2進数に変換する際にはひたすら2で割って余りを出し続ければよいので余計なことを考えずに計算できます。また、2で割り続けるだけなので、計算ミスを避けられる!
「桁の重みを分解して基数変換」は分解する際の計算が少し面倒です。数字が大きくなるとより分解が大変になりそうです。
個人的には余計なことを考えないで計算できる「余りを出し続けて基数変換」が一番楽にできて、わかりやすい方法だと感じました。
最後に
今回は、10進数を2進数に変換するやり方3つをご紹介しました。
基数変換のコツはいかに計算を簡単にできるかだと思います。
私は、個人的に「余りを出し続けて計算する方法」が一番やりやすいと思いました。
ここでは、10進数を2進数に基数変換するやり方だけ紹介しましたが、10進数から16進数に基数変換する場合、2進数から10進数に基数変換する場合など問題によっては、違うやり方が簡単な場合もあるかもしれません。
みなさんの一番簡単な方法を発見できるといいですね。