こんにちは。
kztakaです。
今回は「N進数」について解説していきたいと思います。
実生活だとあまり使うことのないこの「N進数」ですが、ITの分野では多くの「N進数」が使われています。
パソコンのシステムは基本的に「2進数」で構成されていたりしますので、当たり前のように普段私たちが使う「10進数」以外の進数が使われています。
IT関連の仕事に従事、またIT関連の資格取得をしようと考えている方はぜひ参考にしてください。
それでは次章から解説していきます。
目次
どんな種類があるの?
よく言われるもので「2進数」「8進数」「10進数」「16進数」の4つがあります。
まずそれぞれがどんなものかを解説していきます。
※「^」の記号は「乗」を表します。「10の2乗(=100)」とかの「乗」です。
10進数
普段私たちが使っている進数。
0から始まり9の次で位を1つ上げる方法。
1の位(10^0)、10の位(10^1)、100の位(10^2)、1000の位(10^3)、・・・というように増えていく。
2進数
0から始まり1の次で位を1つ上げる方法。
つまり0と1しか使わない。
パソコンのシステム関連でよく使われています。
1の位(2^0)、10の位(2^1)、100の位(2^2)、1000の位(2^3)、・・・というように増えていく。
16進数
0から始まりFの次で位を1つ上げる方法。
9の次はアルファベットのAとなり、Fまで続く。
大きくなりすぎる2進数を簡潔にまとめた進数。
パソコン上で色を表現する時によく使われ、「#000000」で真っ黒、「#ffffff」で真っ白になります。
1の位(16^0)、10の位(16^1)、100の位(16^2)、1000の位(16^3)、・・・というように増えていく。
8進数
0から始まり7の次で位を1つ上げる方法。
あまり使われることはない。
それでも試験に出る可能性はあります。
1の位(8^0)、10の位(8^1)、100の位(8^2)、1000の位(8^3)、・・・というように増えていく。
それぞれ対応させた表を確認してください。
どんな時に使われるの?
10進数とその他、という分け方になります。
10進数は人間が計算しやすい進数になります。
世の中で私たちが目にする数値のほとんどは10進数で成り立っている、といっても過言ではないです。
その他の進数(2・8・16進数)はコンピューターの中で使われます。
以前から使われていたのは2進数です。
しかしお察しの通り、膨大な数字になった場合に2進数は桁数が非常に大きくなります。
そんな時は2進数を16進数に変換して桁数を減らし、理解しやすくします。
N進数を10進数に直すには?
やり方は単純ですがわかりやすくするために、まずは10進数の計算の仕方を覚えてください。
その次に他のN進数の直し方を覚えてもらえばいいかなと思います。
※「^」の記号は「乗」を表します。「10の2乗(=100)」とかの「乗」です。
※「*」の記号は「掛ける(×)」を表します。「10×2」とかの「掛ける」です。
10進数
例として「4851」という数値を分解しましょう。
=4*10^3+8*10^2+5*10^1+1*10^0
=4*1000+8*100+5*10+1*1
=4000+800+50+1
=4851
2進数⇒10進数
例として「1100100111」という数値を分解して、10進数に直しましょう。
=1*2^9 +1*2^8 +0*2^7 +0*2^6 +1*2^5 +0*2^4 +0*2^3 +1*2^2 +1*2^1 +1*2^0
=1*512+1*256+0*128+0*64+1*32+0*16+0*8+1*4+1*2+1*1
=512+256+32+4+2+1
=807
2進数の「1100100111」は10進数の「807」となります。
16進数⇒10進数
例として「1FA9」という数値を分解して、10進数に直しましょう。
=1*16^3 +15*16^2 +10*16^1 +9*16^0
=1*4096+15*256+10*16+9*1
=4096+3840+160+9
=8105
16進数の「1FA9」は10進数の「8105」となります。
8進数⇒10進数
例として「7263」ちう数値を分解して、10進数に直しましょう。
=7*8^3 +2*8^2 +6*8^1 +3*8^0
=7*512+2*64+6*8+3*1
=3584+128+48+3
=3763
8進数の「7263」は10進数の「3763」となります。
10進数をN進数に表すには?
前章では「N進数を10進数に直すには?」を解説しました。
そこで使われたのは「足し算」と「掛け算」です。
本章ではその逆を解説していきます。
使うのは「割り算」です。
以下からそれぞれのN進数で解説していきます。
10進数⇒2進数
「22」という数値を2進数にしていきます。
商が0になるまで「2」で割り続けます。
11÷2=5 余り 1
5÷2=2 余り 1
2÷2=1 余り 0
1÷2=0 余り 1
数値に直す時に使うのは「余り」になります。
この「余り」を下から並べた「10110」が10進数「22」に対応した数値になります。
10進数⇒16進数
「459」という数値を16進数にしていきます。
商が0になるまで「16」で割り続けます。
28÷16=1 余り 12
1÷16=0 余り 1
16進数の場合、「11」は「B」、「12」は「C」で表します。
また先程と同じく「余り」を下から並べたもの、「1CB」というのが10進数「459」に対応した数値になります。
10進数⇒8進数
「2812」という数値を8進数にしていきます。
商が0になるまで「8」で」割り続けます。
351÷8=43 余り 7
43÷8=5 余り 3
5÷8=0 余り 5
他の進数と同様、商の「余り」を下から並べた「5374」が、10進数「2812」に対応した数値になります。
(番外編)2進数を16進数に表すには?
前章と前々章を組み合わせれば計算出来ると思いますが、そうではなくて直接変換する方法があるので紹介します。
2進数「110001001111」を16進数に変換してみましょう。
まず2進数の数値を4桁ずつに区切ります。
この4桁ずつがそれぞれ16進数の100の位、10の位、1の位を表します。
「0100」⇒10の位
「1111」⇒1の位
それぞれに2^3~0を掛けて足していきます。
「0100」⇒0*2^3 +1*2^2 +0*2^1 +0*2^0=0+4+0+0=4
「1111」⇒1*2^3 +1*2^2 +1*2^1 +1*2^0=8+4+2+1=15
10以上は各アルファベットに変換できます。
「0100」⇒4
「1111」⇒15=F
以上から
まとめ
いかがだったでしょうか?
個人的には非常に興奮した回になりました笑
計算問題をやるのは学生以来なので約10年ぶり・・・?
やはり根っからの数字好きなんだなー、と感じました。
さてさて、今回のN進数は主にプログラミングなどをする方がよく使うものだと思います。
しかし、ITパスポート試験にも出題範囲としては入っていますので、このあたりの資格を取るのであれば覚えておいた方がいいですね。
・他の進数はコンピュータなどのプログラミングの数値
・2進数はコンピュータのシステムに使われる
・16進数はコンピュータ上の色に使われる(#○○○○○○etc・・・)
・8進数はほとんど使われない
それではまた次回。
↓前回の記事「クロスチャネル」
↓読書の所感記事も書いてます
(「バカと付き合うな」を読んで)
↓IT系資格の勉強法を公開してます
①ビジネスキャリア検定2級
②ITパスポート