【2,10,8,16進数 ⇄ N進数変換】非エンジニアの私でも理解できる変換方法を紹介します!
IT/サイト設計 プログラミング 更新日:2021/3/21 Tweet基本情報等の資格試験やPLCを扱う際のラダー言語で必須となる〇〇進数ですが、01の数字の羅列を見ても
意味がわからない!という人が多いのではないでしょうか。
私も高校から理系に進み大学院まで出ていますが、数字やプログラミングが苦手で
今まで〇〇進数については受け流しながら逃げてきてしまいました。。
しかし、今回基本情報技術者試験の勉強を通じて私でも理解できる
簡単なやり方を学んだので、紹介していきたいと思います!
目次
1. N進数表記について
そもそもN進数表記とはどういう事なのか説明していきます。実は進数表現は私たちも身近なところで
自然に使っているのです!
まず10進数は0,1,...9,10という形で9の次に桁が上がります。常識だと思うかもしれませんが、
これを10進数と言います。同様に時間を数える時は60進数を使っています。59分まで行くと次は桁が上がって1時間となりますよね!
こんな形で日常に溶け込んでいるのです。
コンピューターは人間とは違い0,1の2進数で文字を読んだり計算したりするので、
2進数はコンピューター用の言葉の素と考えると分かりやすいかもしれません。
2. 2進数→10,8,16進数への変換方法
①事前準備
まず初めにやる事は2の累乗数を書き出す事です!
既に全部暗記してて頭の中で
計算できるよ!という方は良いのですが、試験中に計算ミスや焦りを無くすためにも手元のメモに書き出すと
間違いが減り安心感が生まれます!
個人的には2^10=1,024は暗記しておくと便利だと思います!
②2進数→10進数への変換
先ほど書き出した2の累乗数を使って解いていきます。例題はサムネイル画像でも使用している
101.101を使用します。
変換はとても簡単で小数点を基準に合わせて、2進数の数字が1の箇所を
足し合わせるだけです!
計算すると4+1+0.5+0.125で、答えは5.625となります!
③2進数→8進数への変換
8進数の変換ですが10進数との違いは、8進数は8刻みで桁数が変わる数え方なので、
2進数を小数点を基準として3桁区切りで計算していきます。
この時、3桁に満たない部分は計算しやすい様に0を補います。ちなみに2の3乗が8なので区切りが3桁となります。
例題は1100.01を使用します。変換は先ほどと同様に2進数の数字が1の箇所を足し合わせていきます。
計算すると1区切り目が1、2区切り目が4、3区切り目が2となるので、答えは14.2となります!
④2進数→16進数への変換
16進数の変換は2進数を小数点を基準として4桁区切りで計算していきます。
8進数と同様の考え方で16進数は16刻みで桁数が変わります。2の4乗が16なので区切りが4桁となります。
例題は同様に1100.01を使用します。
変換は先ほどと同様に2進数の数字が1の箇所を足し合わせていきますが、
16進数なので10,11,12,13,14,15がそれぞれA,B,C,D,E,Fとなる事に注意しましょう!
計算すると1区切り目が12=C、2区切り目が4となるので、答えはC.4となります!
3. 10,8,16進数→2進数への変換方法
①10進数→2進数への変換
逆の変換は割り算と掛け算を使う方法もあるのですが、私がお勧めするのは先ほど
作成した2の累乗数一覧を使う方法です!
今回の例は6.375を使っていきます。
まず、整数部分に着目すると6となっています。2の累乗数一覧から6になる組み合わせを見ると、4+2があります。
つまり、小数点左部分は110となります。
同様に少数部分の0.375は0.25+0.125なので、
小数点右部分は011となります。
よって答えは110.011となります!
このように、初めに2の累乗数一覧を書き出しておくと簡単に解く事ができます!
6なら110、5なら101とやっていくうちに勝手に覚えてしまうので、慣れてきたら書き出さなくても良いです。
②8進数→2進数への変換
8進数と16進数に関しては先ほど実施した変換の逆を実施するだけです。10進数から2進数へと同様に、
それぞれ3桁区切り、4桁区切りで該当する2の累乗数を足し合わせるだけです。
例題は36.1を使用します。まず3桁区切りなので、4,2,1の組み合わせで3,6,1を作っていけば良いと分かります。
そうすると1区切り目が3=2+1=011、2区切り目が6=4+2=110、3区切り目が1=001となるので、答えは11110.001となります!
(ここで先頭の0は省略しています)
③16進数→2進数への変換
16進数は4桁区切りで計算していくことと、10,11,12,13,14,15がそれぞれA,B,C,D,E,F
となる事に注意しておけば8進数と計算方法は変わりません!
例題はF.1を使用します。4桁区切りなので、8,4,2,1の組み合わせでF(15),1を作っていけば良いです。
計算すると、1区切り目が15=8+4+2+1=1111、2区切り目が1=0001となるので、答えは1111.0001となります!
4. まとめ
ここまで読んでいただきありがとうございました!皆様のN進数表記に対する苦手意識が
払拭されていると幸いです。学んだ内容はアウトプットしないと自分の能力として定着しないので、
是非自分で練習問題を作成して何回も解いてみましょう!
WEB便利ノート
さんというサイトで簡単に変換できるツールがありますので、練習や答え合わせに使用してください!
また、慣れるまでは必ず初めに2の累乗数を書き出しましょう!!
最後に、更に詳しくN進数表記やプログラムの理解を深めたいという方は「プログラムはなぜ動くのか 知っておきたいプログラムの基礎知識」
という本が非常にお勧めです。私も非エンジニアですが、一から少しづつ読んでいく事でとても理解を深める事が出来ました。
また、インプットした内容はアウトプットするのが知識を定着させるためには一番なので、
ITパスポートや基本情報技術者試験にチャレンジしてみるのも良いと思います。
各種試験概要や申し込みは、
情報処理試験
から確認ができますので、興味が湧いた方はみてみてください。是非資格取得をしましょう!
ちなみに私が愛用しているおすすめの参考書は下記となりますので参考にしてみてください!
Tweet ◆YouTubeチャンネル