我々が普段計算などに用いる数は、通常10進法と呼ばれるものを利用します。つまり、0,1,2,3,4,5,6,7,8,9という文字を使って数を表します。 しかし、コンピュータが使われるようになって、コンピュータで10進法をそのまま扱うのは都合が悪いので2進法とか16進法というものが用いられています。特に理系ではこういったことを理解することは今では必須となっています。コンピュータで主に出てくるのは2進法と8進法と16進法です。

2進法
0と1のみを用いて数を表します。ここでは、(1101)のように数字にカッコがついているものは2進数として扱います。

8進法
0〜7までの数字を用いて数を表します。ここでは、0325のように先頭が0で始まる数は8進数として扱います。

16進法
0〜9までの数字とA〜Eまでのアルファベットを用いて数を表します。ここでは、0x7Fのように先頭が0xで始まる数は16進数として扱います。

・n進法から10進法への変換
コンピュータは計算をするとき、10進法で表された数字は2進法に変えられてから計算され、計算結果を10進法になおしてから結果を表示します。コンピュータが勝手にやるんだからわざわざ人間が使う必要ないじゃん、とか思っていても大学の講義で計算させられるのでできるようにしましょう。

(11001101)という数について、これを10進法になおすと、
1*27 + 1*26 + 0*25 + 0*24 + 1*23 + 1*22 + 0*21 + 1*20 = 128 + 64 + 8 + 4 + 1 = 205

0753だと、
7*82 + 5*81 + 3*80 = 448 + 40 + 3 = 491

0x9F5だと、
9*162 + 15*161 + 5*160 = 2304 + 240 + 5 = 2549

xのy乗をx^yというように表すこともあります。x0=1ですね。*は掛け算です。計算は累乗のほうを先に処理します。
右から数えた桁数をN、N桁目の数をaNとおくと、

aN*nN-1 + aN-1*nN-2 + ... + a2*n1 + a1*n0

このようにして、n進法から10進法への変換をします。

・10進法からm進法への変換
先ほどのより少し難しいかもしれませんが、方法は簡単です。

aN*nN-1 + aN-1*nN-2 + ... + a2*n1 + a1*n0

先ほどはこの式で10進法の数値を求めたので、今回はその逆をすればいいですね。計算が若干面倒ですが。

382という数値に対して2進法なら、

382 = 1*28 + 0*27 + 1*26 + 1*25 + 1*24 + 1*23 + 1*22 + 1*21 + 0*20

よって、(101111110)となります。

8進法なら、

382 = 5*82 + 7*81 + 6*80

よって0576となります。

16進法なら、

382 = 1*162 + 7*161 + 15*160

よって0x17Eとなります。

・n進法からm進法への変換
基本的にn進法から10進法へ変換→10進法からm進法へ変換という順番で変換します。

・演習について
こういう計算は慣れがないと結構大変です。演習はWindowsの電卓機能を使えば簡単にできます。
スタート→アクセサリより電卓を選び、メニューバーの「表示」から「関数電卓」を選択します。左上のほうに16進とか10進とかあるので、そこをクリックしてやると入力した数値が選択した記数法で表示されます。

・2のべき乗
こういう計算をするとき、2のべき乗を覚えておくと便利です。210くらいまで覚えておくといいかもしれません。

20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
25 = 32
26 = 64
27 = 128
28 = 162 = 256
29 = 512
210 = 1024
216 = 164 = 2562 = 65536
224 = 2563 = 16777216
232 = 655362 = 4294967296

戻る