数について

10進数(decimal number)

「位取り」の発明
"Dで千,"C"で百,"B"で十,"A"で一を表すものとすると, たとえば1234という数は "DCCBBBAAAA"と表すことができる.

[課題]この記法を用い1234 + 56 を計算してみよ.また, 12 * 34 を計算してみよ.

普段何気なく使っている10進数であるが,各数字はその大きさだけではなく, その「位置」が特定の(rank)を表す.たとえば,

   1234
と表記した時,1は1000(=10の3乗)の位を,2は100(=10の2乗)の位を表す.つまり, 隣り合う桁において,上位の桁は下位の桁の「10」倍の意味を持つ.

もう一つの発明は「桁上げ」(carry)で,位取りの考え方から自然に生まれたものである. たとえば,10進数で,

  10
と表記すると何を意味するのだろうか.0,1,...,9と続いき,次はまた,0に戻る. この時,つまり9に1を加えると,0になり,同時に,桁が一つ上がり,その時の1が 左側に付く.この"10"を,我々は「イチゼロ(one zero)」と呼ばないで, 「ジュウ(ten)」と呼ぶ.しかし,それは我々が10進数の世界に住んでいるからであり, そうでない世界(他の進数表記の世界)では,呼び名が無いか,あっても異なる呼び名と なるはずである.

桁上げを利用することで,次のような計算は簡単に記述できる.

    123
  + 39
  ------
    162
3と9を足したとき,桁上がりが生じ,それ(1)が十の位の加算(2+3)の結果に 加えられる.

ちなみに,(number)という時は,たとえば,1954や3.14など.一方,数字(digit)と いう時は,0から9までの文字を表す.

例:

2進数(binary number)

10進数を表すには,以下の10個の(数字)を用いる.
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9
では,2進数の場合はどうか?
  0, 1
のみである. 2進数にも10進数同様,位取りの考え方を採用すると,2進数
  101(2)
は,10進数では
  101(2) = 1*22 + 0*21 + 1*1 = 5(10)
となる.つまり,右から各桁は,1の位,2の位,4の位,8の位,...を表す.

桁上がりの扱いも,10進数の場合とまったく同様に考えればよい.つまり,0,1,の次は 2ではなく,10となる.これは,0,1の次はまた0に戻り,しかし,桁が1つ上がったので 左に1が付く.これはジュウとは読まない.呼び方がないので,単純にイチゼロと読むしかない.

   1101
  +  11
  ------
  10000
【問題】 各自,この結果を確認せよ.

例:

16進数(hexadecimal number)

10進数は10個の記号(0,1,2,...,9),また,2進数は2個の記号(0,1)を用いて数を 表した.では,16進数の場合はどうか?0,1,2,..., 9,の次にもう使える数字を 我々は持っていない.そこで,10進の10,11,12,13,14,15を表す記号として A, B, C, D, E, Fをそれぞれ使うことにする.
     0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D ,E, F

たとえば,1AC(16)は10進数で考えるといくつになるか.16進数では 各桁は右から,1,16,16の2乗(256),16の3乗,..を表す.したがって,

 1AC(16) = 1*162 + A*16 + C = 1*256 * 10*16 * 12 = 428(10)

例:

16進数と2進数との間には次のような関係がある. 「2進数表記を4ビット単位で分割し, それぞれを16進表記したものを順番に並べできる16進数は, 元の2進数と値が同じである」.これは何故か?

  例: 10110101(2) = B5(16)

8進数(octal number)

2進数,16進数まで理解できれば,8進数もまったく同様の考えたで 理解できる.8進数の場合,使える記号は
  0,1,2,3,4,5,6,7
であり,8進10進変換は次のように計算する.
  17(8) = 1*8 + 7 = 15(10)