情報数学 I

第二回: 数の表現 (2011年 10月 7日)

Martin J. Dürst

http://www.sw.it.aoyama.ac.jp/2011/Math1/lecture2.html

AGU

© 2005-11 Martin J. Dürst 青山学院大学

今日の予定

Moodle の登録の諸問題

授業の日程

情報数学 I の日程

参考書

数と数字の歴史

(資料: Georges Ifrah: The Universal History of Numbers, John Wiley & Sons, 1998)

数字の形

1 から作り上げる自然数

(ペアノの公理; Peano Axioms; Guiseppe Peano, 1858-1932)

  1. 1 は自然数
  2. a が自然数であれば s(a) は自然数 (s は successor, 後者)
  3. s(x) = 1 という x は存在しない
  4. 違う自然数の後者が違う: a = bs(a) = s(b)
  5. 1 がある性質を持ち、かつ
    任意の自然数 a がある性質をもつときに s(a) もこの性質を持つとき、
    全ての自然数はこの性質を持つ

(現在は 1 のではなく 0 からのスタートが普通)

ペアノ公理下での自然数の表現

1 1
2 s(1)
3 s(s(1))
4 s(s(s(1)))
5 s(s(s(s(1))))
6 s(s(s(s(s(1)))))
7 s(s(s(s(s(s(1))))))
... ...

ペアノ風足し算

公理 (Axiom):

  1. a + 1 = s(a)
  2. ab が自然数の場合、a + s(b) = s(a + b)

2 + 3 をペアノ風で計算:

 
 
 

0 の発見

位取り表現と10進法

位取り表現以前の数字の表し方:

漢数字: 二百五十六

ローマ数字: CCLVI

十進法の具体例: 256 = 2×102 + 5×101 + 6×100

0 を含む具体例: 206 = 2×102 + 0×101 + 6×100

一般化: dn...d1d0 =

小数点の例: 34.56 = 3×101 + 4×100 + 5×10-1 + 6×10-2

数の表現: 2進法

1010011 = 1×26 + 0×25 + 1×24 + 0×23 + 0×22 + 1×21 + 1×20 =

基数変換: b 進法から 10進法

それぞれの桁の値と桁の重みの積 (掛算) の和 (足算)

基数変換: 10進法から b 進法

変換したい数を最初の商にして、繰り返し商を b で割って、余りを最下位の桁にする

23 = 11×21 + 1×20 = 5×22 + 1×21 + 1×20 = 2×23 + 1×22 + 1×21 + 1×20 = 1×24 + 0×23 + 1×22 + 1×21 + 1×20 = 10111

余り 結果の回の桁
23 11 1 1
11 5 1 11
5 2 1 111
2 1 0 0111
1 0 1 10111

基数変換: b 進法から c 進法

数の表現: 16進法

1AF = 1×162 +A×161 +F×160 =

16進法の桁の値
桁 (大文字) 桁 (小文字) 値 (10進法で)
A a 10
B b 11
C c 12
D d 13
E e 14
F f 15

情報テクノロジーでよく使う基数

基数 英語と略 (形容詞) 用途、使用理由 定数の書き方
2 binary, bin 論理と回路の基本 0b101100 (Ruby 等一部限定)
8 octal, oct 2 進法の短縮、最近使用が少ない 024570 (C 等多くの言語)
10 decimal, dec 人間用 1234567 (全ての言語)
16 hexadecimal, hex 2 進法の短縮、1 バイト (8 ビット) を2 桁で表現可能 0xA3b5 (C 等多くの言語)

2 進法と 16 進法の対応

10 2 8 16
0 0000 0 0
1 0001 1 1
2 0010 2 2
3 0011 3 3
4 0100 4 4
5 0101 5 5
6 0110 6 6
7 0111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

2 の何乗

n 2n 16 進法
0 1 1
1 2 2
2 4 4
3 8 8
4 16 10
5 32 20
6 64 40
7 128 80
8 256 100
9 512 200
10 1024 ≈103 (kilo) 400
11 2048 800
12 4096 1000
16 65536 10000
20 1048576 ≈ 106 (mega) 100000
30 1073741824 ≈ 109 (giga) 40000000
40 1099511627776 ≈ 1012 (tera) 10000000000

次回への宿題

(提出不要)

次の奇数変換を行いなさい:

a の基数 a b の基数 b
8 155 10
10 93 7
2 10010100101111110 16                                       
9 835642 3
8 7531246 16
11 A987 2
27 HAHO45 9

冗談の宿題

Q: Why do computer scientist always think Christmas and Halloween are the same ?

質問: なぜ情報テクノロジーの専門家はクリスマスとハロウィーンをいつも誤解するか。

もう一つの冗談

質問: 情報テクノロジーで還暦は何歳か