基本情報を勉強しているときに、2進数、16進数の計算をしなければいけなくなり、今回記事にします。
10進数
10進数は普段使っているのでわかりやすいですが、実際に式にすると以下のようになります。
例
1571という数字を分解した場合
1×1000 + 5×100 + 7×10 + 1×1
これを累乗で表すと以下になります。
1×10^3 + 5×10^2 + 7×10^1 + 1×10^0
この考え方を2進数でも16進数でも利用します。
※ ^n は、指数を表しております
2進数
2進数は 0 と 1 だけで値を表現する記法で、PCは2進数で構成されています。
例えば 2 と表現したい場合は、 10 となります。
これは2で次の位に上がるということです。
例
2進数
0 , 1 , 10 , 11 , 100 , 101
これを10進数にすると下記になります。
0 , 1 , 2 , 3 , 4 , 5
2進数を10進数に計算する方法
実際に2進数を10進数に変換する計算方法は下記のようになります。
1101を変換したいと思います。
まず 10進数のときと同様に、1の位を0乗 、 10の位を1乗 、 100の位を2乗 、 1000の位を3乗とします。
次に、2と掛け合わせて、それぞれ足し合わせていくと10進数になります。
1×2^3 + 1×2^2 + 0×2^1 + 1×2^0
となり
8 + 4 + 0 + 1 = 13
となります。
よって、2進数の1101は、10進数では13となります。
10進数を2進数に変換
先ほどの例で変換を行います。
2進数に変換するのは、いたって簡単
10進数を2で割って、その商を2で割ってを商が0になるまで繰り返し、最後の余りから順にくっつけるだけです。
13÷2=6...1
6÷2=3...0
3÷2=1...1
1÷2=0...1
最後の余りから順に余りを並べると
1101 となる
16進数
16進数は、0~9とA~Fで構成されています。
0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)
16進数を10進数に計算する方法
実際に16進数を10進数に変換する計算方法は下記のようになります。
2F3Bを変換したいと思います。
まず 10進数のときと同様に、1の位を0乗 、 10の位を1乗 、 100の位を2乗 、 1000の位を3乗とします。
次に、16と掛け合わせて、それぞれ足し合わせていくと10進数になります。
2×16^3 + F(15)×16^2 + 3×16^1 + B(11)×16^0
となり
8192 + 3840 + 48 + 11 = 12091
となります。
よって、16進数の2F3Bは、10進数では12091となります。
10進数を16進数に変換
先ほどの例で変換を行います。
2進数のときと同じく、
10進数を16で割って、その商を16で割ってを商が0になるまで繰り返し、最後の余りから順にくっつけるだけです。
12091÷16=755...11
755÷16=47...3
47÷16=2...15
2÷16=0...2
最後の余りから順に余りを並べると
2F(15)3B(11) となる