情報数学1 第2-2章 - Tominaga Lab, Chausson

情報数学1 第3-3章
多進法での四則演算
香川大学工学部 富永浩之
[email protected]
概
要
■ 加法と減法
加法表と減法表、加法筆算、減法筆算、補数による減算
■ 乗法と除法
乗法表、乗法筆算、除法筆算、多倍長整数の加算と乗算
■ 多進法の応用
多進数相互の変換、フランス乗算法
■ 実数の記数法
実数の多進表記と変換算法、算術的表記と理科的表記、
有効数字と有効桁数、理科的表記における四則演算
計算機における実数の内部表現
第01節 [1] 加法表と減法表
7進法の加法表(↑は繰上り)
7進法の減法表(↓は繰下り)
+
0
1
2
3
4
5
6
-
0
1
2
3
4
5
6
0
0
1
2
3
4
5
6
0
0
↓6
↓5
↓4
↓3
↓2
↓1
1
1
2
3
4
5
6
↑0
1
1
0
↓6
↓5
↓4
↓3
↓2
2
2
3
4
5
6
↑0
↑1
2
2
1
0
↓6
↓5
↓4
↓3
3
3
4
5
6
↑0
↑1
↑2
3
3
2
1
0
↓6
↓5
↓4
4
4
5
6
↑0
↑1
↑2
↑3
4
4
3
2
1
0
↓6
↓5
5
5
6
↑0
↑1
↑2
↑3
↑4
5
5
4
3
2
1
0
↓6
6
6
↑0
↑1
↑2
↑3
↑4
↑5
6
6
5
4
3
2
1
0
主対角線に関して対称
副対角線に関して対称
・ 加法表と減法表は、加減算の筆算の各桁の計算結果を表す
・ 2+6=11, 2-6=-4 ではなく、2+6=↑1, 2-6=↓3 と、繰上りと繰下りを記述
・ 加法表と減法表は、互いに逆の関係
・ 繰上りと繰下りを無視すると、合同式の加法表・減法表と一致
第01節 [1] 多進法での加法と減法
多進法での加減算は、下位桁からの筆算の形で行う。
加法表および減法表に基づき、各桁同士の計算結果を
繰上り・繰下りも含めて明記し、上位桁で清算する。
3 4 1 4 被加数
+
↑
2 6 5 加数
1 1 1
繰上り
3 4 1 4 被減数
+
2 6 5 減数
↓
1 1
4 0 1 2 和
繰下り
3 1 1 6 差
最上位桁で繰上り・繰下りが発生したときは、
固定桁で非負の多進数としては、桁溢れになる。
3 4 1 4 被加数
+
3 2 6 5 加数
↑ 1 1 1 1
繰上り
↑ 0 0 1 2 和
2 2 1 4 被減数
+
2 3 6 5 減数
↓ 1 1 1 1
繰下り
↓ 6 5 1 6 差
第03節 [1] 多進法の乗法表
7進法の乗法表
6進法の乗法表
×
0
1
2
3
4
5
6
×
0
1
2
3
4
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
1
0
1
2
3
4
5
2
0
2
4
6
11
13
15
2
0
2
4
10
12
14
3
0
3
6
12
15
21
24
3
0
3
10
13
20
23
4
0
4
11
15
22
26
33
4
0
4
12
20
24
32
5
0
5
13
21
26
34
42
5
0
5
14
23
32
41
6
0
6
15
24
33
42
51
主対角線に関して対称
・ 最下位桁は、合同式の乗法表と一致
・ 1桁同士の計算に余り意味がないので、除法表は考えない
第03節 [2] 多進法での乗法筆算
多進法の乗法 = 乗法表 + 左桁シフト
3 4 1 5
×
4
3 4 1 5
×
×
2
2 6
4 2
1 3
4
6
2
2 2
+
6
3 4 1 5
1 5
3 3
+
2 0 2 6 6
+
2 4
3 0 4 3 2
3 4 1 5
×
1 1
2 6 4
2 0 2 6 6
3 0 4 3 2
+ 1 0 1 3 3
1 3 4 1 2 1 6
6
1 0 1 3 3
第03節 [3] 多進法での除法筆算
42053[7] ÷ 214[7] = 163[7] ‥ 145[7]
1 6 3 整商
2 1 4 4 2 0 5 3 被除数
2 1 4
商1を立てる
2 0 3 5
差を求める
1 6 2 3
商6を立てる
1 1 2 3
6 4 5 商3を立てる
1 4 5 剰余
214 ×1 = 214
214 ×2 = 431
214 ×3 = 645
214 ×4 = 1162
214 ×5 = 1406
214 ×6 = 1623
第06節 [1] 10進数の正実数から多進数への変換
● 正実数の10進表記から多進表記への変換
[1] 実数を整数部分と小数部分に分け、
整数部分は、自然数の変換算法と同様にする。
[2] 小数部分については、基数を掛け、
その結果の整数部分(0を含めて必ず1桁)を順に並べていく。
[3] 上記の結果の小数部分のみを取り出し、[2]を繰り返す。
[4] 小数部分が0になったら終了である。
ただし、循環小数となり、終了しない場合がある。
0.124[10] = 0.03022‥[5]
5
0.124 0.62
3.1
0.5 2.5 2.5 ‥ 基数による乗算
0.124 0.62
0.1
0.5 0.5 0.5 ‥ 小数部分
3
0
0
0
2
2
‥ 整数部分(各桁)