人生の議事録

やっていることとか、考えたこととか。

コツさえ覚えれば意外と簡単!2進数を「10進数」「8進数」「16進数」に変換する方法

現在「基本情報技術者検定」という、いわゆるコンピュータの基礎の「基」を理解するための資格勉強をしている。

 

その資格の内容はどれもIT関連の会社に勤める者にとっては、知ってて当然の知識ばかりらしく、高校生の時に取得している人も少なくない。

 

実際同じチームにもこの資格を18歳の時に取得した先輩もおり(年齢は同じ)、完全に出遅れスタートとなってしまった。

 

まあ、そんなことはどうでもいいのだけれど、この資格計算問題がむっちゃ多い...

 

私は計算が特に苦手で、数学に関しては中学2年くらいからついていけなくなってしまった...(因数分解とかもできないだろうなー)

 

そして資格の勉強をする中で、とある計算ができなくて壁にぶち当たっている訳です。

 

この計算に苦戦している人は絶対に私だけじゃないはず!(だってむっちゃややこいし!)

 

ということで、今日は絶賛苦戦中の「2進数」「8進数」「10進数」「16進数」の計算方法について紹介したいと思います。

 

完全に自分用メモなので悪しからず!

 

 

そもそも「2進数?」「10進数?」ってなに?

f:id:kenshisakamoto:20170625154554p:plain

 

普段私たちが使っている数字は、「10進数」と呼ばれるものです。

1~9まで数えていって、9の次に桁上がる。

しかし、コンピュータが扱うデータは、「2進数」と呼ばれるものが採用されており、その世界では「0」と「1」しか存在しません。

なので1の次に桁が繰り上がるような数字の動き方をします。

 

また、「2進数」以外にも「8進数」「16進数」というものがあり、これらもそれぞれ7の次に桁が上がったり、15の次に桁が上がったりします。

 

はあ?何言っちゃてんの?

と思った人もいると思いますが、

 

これに関しては理解するというよりは、こういうルールで成り立っているから覚えるしかないかなと思います。

 

 

まずはそれぞれの解き方を覚える

資格試験には、例えば2進数を10進数に変換したり、8進数を10進数に変換したりといろんな変換パターンが出てきます。しかし、中途半端に勉強するとどの解き方を使って計算すればいいのか、分からなくなってしまうんですね。

 

なのでまずは、解き方を覚える練習を徹底的にした方がいいです。

変換パターンには以下の12種類があります。

 

  • 2進数⇒10進数
  • 2進数⇒8進数
  • 2進数⇒16進数
  • 10進数⇒2進数
  • 10進数⇒8進数
  • 10進数⇒16進数
  • 8進数⇒2進数
  • 8進数⇒10進数
  • 8進数⇒16進数
  • 16進数⇒2進数
  • 16進数⇒10進数
  • 16進数⇒8進数

 

これら12種類の解き方を完璧に頭に入れましょう!

今回は、青文字の部分の解説です!

 

 

2進数⇒10進数

 

例えば、1234という数字があったとします。

これをばらばらにしてみると、(1×1000)+(2×100)+(3×10)+(4×1)と表すことができます。各桁に掛けている「1000」「100」「10」「1」のことを重みと言います。

 

  1   2   3   4

 10^3     10^2      10^1      10^0

 

↑を頭に入れて2進数から10進数への変換をやってみます。

 

<2進数「1101」を10進数に変換する>

 

2進数⇒   1   1   0   1

 重み⇒     2^3     2^2    2^1     2^0

 

2進数の場合基数は「2」になりますので、左に向かって2^0、 2^1、2^2、2^3と数が増えていきます。

 

2進数⇒   1   1   0   1

 重み⇒     2^3     2^2    2^1     2^0

計算⇒  1×2^3  +  1×2^2  +  0×2^1  +  1×2^0

                  =8+4+0+1

                  =13

 

となります。

 

 

 

2進数⇒8進数

「重み」について少し理解ができたところで、次は2進数から8進数へ変換するパターンを見てみます。

 

2進数⇒10進数の時と同じように、基数である「2」の重みを掛けていくことに変わりはないのですが、ちょっと違うところがあります。

 

2進数の3桁は、2^3=8であることから、1桁で表すことができます。

そのため、2進数を8進数に変換する場合、3桁ずつ区切って計算します。

こんな感じです。

 

<2進数「111111」を8進数に変換する>

 

2進数⇒   1   1   1    1   1   1

 重み⇒     2^2     2^1    2^0        2^2     2^1    2^0

計算⇒  1×2^2  +  1×2^1  +  1×2^0    1×2^2  +  1×2^1  +  1×2^0

     =4+2+1           =4+2+1

     =7              =7

 

=77

 

このように区切って計算した数字は、最後に足し算するのではなく、そのまま並べるようにします。

 

 

 

2進数⇒16進数

 次は、2進数から16進数への変換です。

2進数⇒8進数の応用編といった感じなので、難しくありません。

2進数の4桁は、2^4=16であることから、1桁で表すことができます。

先ほどと一緒ですね!

 

そのため、2進数を16進数に変換する場合、4桁ずつ区切って計算します。

 

<2進数「11101110」を16進数に変換する>

 

2進数⇒   1   1   1   0    1   1   1   0

 重み⇒     2^3     2^2    2^1     2^0          2^3     2^2    2^1       2^0 

計算⇒  1×2^3  +  1×2^2  +  1×2^1  +  0×2^0    1×2^3  +  1×2^2  +  1×2^1  +  0×2^0

     =8+4+2                     =8+4+2

     =14                      =14

 

=EE

※10進数14は16進数では「E」と表すため、答えは「EE」となります。

 

 

おわり。