The base of computer science

Date : 2005-12-12
Author : Defolos

CONTENTS

(1.) n進数と単位

n進数と単位

 進数とは、桁の区切りをどこで行うかを定めたものです。例えば、普段私たちが使っているのは10進数で、10で桁を区切ります。1,2,3...8,9と数字を数えた場合、次の数字は桁が上がって10になります。

 コンピュータ内部では、すべて電圧が低いか高いかで数値を表しています。つまり、2進数です。2進数の場合、桁上がりが極端に多くおきますが、10進数と考え方は同じです。しかし、異なった進数を理解するのは簡単ではありません。これは長く付き合っていくうちにわかってくるものだと割り切ったほうがよいでしょう。次の表に2進数と10進数の対応表を記載します。

+------+------+ +------+------+ +------+------+
|十進数|二進数| |十進数|二進数| |十進数|二進数|
+------+------+ +------+------+ +------+------+
|     0|     0| |     5|   101| |    10|  1010|
+------+------+ +------+------+ +------+------+
|     1|     1| |     6|   110| |    11|  1011|
+------+------+ +------+------+ +------+------+
|     2|    10| |     7|   111| |    12|  1100|
+------+------+ +------+------+ +------+------+
|     3|    11| |     8|  1000| |    13|  1101|
+------+------+ +------+------+ +------+------+
|     4|   100| |     9|  1001| |    14|  1110|
+------+------+ +------+------+ +------+------+

● 基数変換

 2進数から10進数への変換のように、基準となる進数を変換することを基数変換といいます。さて、基数変換を行うには前述のような対応表を延々と覚えて変換するという手段もあります。しかし、これが100桁や1000桁になってしまっては覚えきれません。そのような場合、次に挙げるように計算によって基数変換を行う方法が生きてきます。

● 桁の重みから計算

 私たちは通常生活では桁に『重み』をつけて数値を認識しています。例えば、1256円の商品があるとして、これは「1000円+200円+50円+6円」で表すことができます。位ごとに通貨を思い浮かべると理解がしやすいかもしれません。6円は1円玉(1の位の通貨)6枚で表すことができます。次の50円は10円玉(10の位の通貨)5枚、200円は100円玉2枚、1000円は1000円札1枚で表すことができます。これらを全て足し合わせることで1256円を算出しています。ここで出てきた通貨というのがはじめに出てきた『重み』のようなものです。

 これと同じように2進数でも桁ごとに重みをつけることで簡単に変換できます。例えば1101001という8桁の2進数があったとします。2進数の重みは2^桁数-1なので、8桁目は2^7で64となり、7桁目は2^6で32となります。このように1桁目まで求めてみましょう。これで求めた桁の重みと対応する各桁の積を足し合わせたものが10進数になります。式に表すと次のようになります。

[重み]

進数^桁数-1 (2^n-1)

+-------+-------+-------+-------+-------+-------+-------+-------+
| 8桁目 | 7桁目 | 6桁目 | 5桁目 | 4桁目 | 3桁目 | 2桁目 | 1桁目 |
+-------+-------+-------+-------+-------+-------+-------+-------+
| 2^8-1 | 2^7-1 | 2^6-1 | 2^5-1 | 2^4-1 | 2^3-1 | 2^2-1 | 2^1-1 |
| = 128 | = 64  | = 32  | = 16  | = 8   | = 4   | = 2   | = 1   |
+-------+-------+-------+-------+-------+-------+-------+-------+

■参考文献


go back to the TOP page of Glazheim Lykeion.