10進数を「2進数」「8進数」「16進数」にする方法
今日は、10進数を「2進数」「8進数」「16進数」にする方法について!
仕事終わりで疲れているけど、負けない!眠くない!アイス食べたい!
さて、ちゃっちゃとやっていきましょう♪
10進数⇒2進数
ど定番のやつからいきやしょう。
<10進数16を2進数に変換する>
やり方は簡単です、16を2で割っていくだけ。
2)16
2)8・・・0
2) 4・・・0
2)2・・・0
2)1・・・0
0・・・1 ←余りの数を反映させる
=10000
ポイントは商が「0」になったときは余りの数を反映させるというところ。
今回のケースでいうと1÷2は1以下の数になるので、0になります。
というのも、10進数⇒2進数の計算では0になった時点で計算は終わりです。
しかし、余りの数字を反映させます。
10進数⇒8進数
10進数⇒8進数の計算は先ほどの10進数⇒2進数の計算と同じです。
<10進数127を8進数に変換する>
8)127
8)15・・・7
8) 1・・・7
0・・・1 ←余りの1を反映させる
=177
2進数⇒10進数と同じで商が0になるまで8で割っていきましょう。
商が0になったらあまりの数を反映させましょう。
10進数⇒16進数
10進数⇒16進数もやはりやり方は同じ。
<10進数127を16進数に変換する>
16)127
16)7・・・15 ←16進数で表すと「F」になる
0 ・・・7
=7F
15は16進数で表すと「F」になるので答えは7Fとなります。
おわり。よしアイス食べる!
2進数「1001110」を16進数に変換する方法
2進数から16進数に変換する問題を解いていくと、タイトルのような問題にぶち当たると思います。
何が言いたいかというと、
2進数⇒ 1 0 0 1 | 1 1 0
桁が足りひんやんけ問題です。
今までは、
2進数⇒ 1 0 1 0 | 1 0 1 0
このように綺麗に4つずつ分けることができたので、簡単に計算ができていたと思います。
せっかくなので計算してみますと、
2進数⇒ 1 0 1 0 | 1 0 1 0
重み⇒ 2^3 2^2 2^1 2^0 2^3 2^2 2^1 2^0
計算⇒ 1×2^3 + 0×2^2 + 1×2^1 + 0×2^0 1×2^3 + 0×2^2 + 1×2^1 + 0×2^0
=8+2 =8+2
=10 =10
=AA
となります。
さて本題に戻します。
2進数⇒ 1 0 0 1 | 1 1 0
ちなみにこの分け方は間違っています。
「1001110」このような2進数を16進数に変換する場合、
2進数⇒ 0 1 0 0 | 1 1 1 0
左からではなく、右から4つずつ数字を分けるようにします。
すると左側には一桁足りなくなりますよね?
数字が足りない場合は「0」を補います。
あとは、いつも通り計算するだけ。
2進数⇒ 0 1 0 0 | 1 1 1 0
重み⇒ 2^3 2^2 2^1 2^0 2^3 2^2 2^1 2^0
計算⇒ 0×2^3 + 1×2^2 + 0×2^1 + 0×2^0 1×2^3 + 1×2^2 + 1×2^1 + 0×2^0
=4 =8+4+2
=4 =14
=4E
と、このようになります。
おわり。
コツさえ覚えれば意外と簡単!2進数を「10進数」「8進数」「16進数」に変換する方法
現在「基本情報技術者検定」という、いわゆるコンピュータの基礎の「基」を理解するための資格勉強をしている。
その資格の内容はどれもIT関連の会社に勤める者にとっては、知ってて当然の知識ばかりらしく、高校生の時に取得している人も少なくない。
実際同じチームにもこの資格を18歳の時に取得した先輩もおり(年齢は同じ)、完全に出遅れスタートとなってしまった。
まあ、そんなことはどうでもいいのだけれど、この資格計算問題がむっちゃ多い...
私は計算が特に苦手で、数学に関しては中学2年くらいからついていけなくなってしまった...(因数分解とかもできないだろうなー)
そして資格の勉強をする中で、とある計算ができなくて壁にぶち当たっている訳です。
この計算に苦戦している人は絶対に私だけじゃないはず!(だってむっちゃややこいし!)
ということで、今日は絶賛苦戦中の「2進数」「8進数」「10進数」「16進数」の計算方法について紹介したいと思います。
完全に自分用メモなので悪しからず!
そもそも「2進数?」「10進数?」ってなに?
普段私たちが使っている数字は、「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」となります。
おわり。