八進法(はっしんほう、英: octal)とは、8 を底(てい)とし、底およびその冪を基準にして数を表す方法である。
記数法
八進記数法とは、8 を底とする位取り記数法である。八進法では、0から7までの八種類の数字を用い、八を10、九を11(八一)、十を12(八二)…と表記する。以降も、十進法16は 20 (二八)、十進法24は 30 (三八)、十進法30は 36 (三八六) となる。このように、「八が10になる」記数法が八進法であり、「一桁の数字が8まで」なのはその次の九進法である。
必要に応じ、八進記数法の表記は括弧および下付の 8、十進記数法の表記を括弧及び下付きの10 で表す。八進記数法で表された数を八進数と呼ぶ。
整数の表記も、八進法では以下のようになる。
- (13)10 = 15(1×8 + 5)
- (16)10 = 20(2×8)
- (27)10 = 33 (3×8 + 3)
- (32)10 = 40(4×8)
- (49)10 = 61(6×8 + 1)
- (64)10 = 100(1×82)
- (81)10 = 121(1×82 + 2×81 + 1)= (100)9
- (100)10 = 144(1×82 + 4×81 + 4)
- (216)10 = 330(3×82 + 3×81)= (1000)6
- (320)10 = 500(5×82)
- (512)10 = 1000(1×83)
- (729)10 = 1331(1×83 + 3×82 + 3×81 + 1)= (1000)9
- (1000)10 = 1750(1×83 + 7×82 + 5×81)
- (1944)10 = 3630(3×83 + 6×82 + 3×81)= (13000)6
- (2000)10 = 3720(3×83 + 7×82 + 2×81)
- (2048)10 = 4000(3×83 + 7×82 + 5×81 + 1)
- (2187)10 = 4213(4×83 + 2×82 + 1×81 + 3)= (3000)9
- (2560)10 = 5000(5×83)
- (4096)10 = 10000(1×84)= (5551)9
- (7776)10 = 17140(1×84 × 7×83 + 1×82 + 4×81 + 1)= (100000)6
10となる八は2の3乗なので、二進法の 3 桁を八進法の 1 桁で表現できた。初期のコンピュータでは1文字は6ビット、すなわち八進法 2 桁であり、ワード長も6の倍数であることが多かったため(IBM 7090の36ビット・CDC 6000の60ビット・PDP-8の12ビット・PDP-7の18ビット)、八進法によって表現するのが都合よく、コンピュータ業界ではかつて八進法が広く使われた[1]。C や Perl などでは、数の前に 0 を付けると八進数と見なされる。例えば 011 は (11)10 ではなく (11)8 すなわち 9 である。しかし、計算機のワード長が 8 ビット(オクテット)からなるバイトの倍数によって構成されることが一般的になると、二進数 4 桁を 1 つにまとめた十六進数のほうが切りがよいため、八進法が使われることは少なくなった。
可分性
10となる八は素因数分解すると23なので、2でしか割り切れない。即ち、1/3や1/5など奇数分割ができない。単位分数も、2の冪数以外は全て無限小数になる。素因数が複数となる六進小数(2と3)や十進小数(2と5)との対比も示す。
単位分数の小数換算値
素因数分解 |
八進分数 |
八進小数 |
六進小数 |
十進小数 |
十進分数
|
2 |
1/2 |
0.4 |
0.3 |
0.5 |
1/2
|
3 |
1/3 |
0.2525… |
0.2 |
0.3333… |
1/3
|
22 |
1/4 |
0.2 |
0.13 |
0.25 |
1/4
|
5 |
1/5 |
0.1463… |
0.1111… |
0.2 |
1/5
|
2×3 |
1/6 |
0.12525… |
0.1 |
0.1666… |
1/6
|
7 |
1/7 |
0.1111… |
0.0505… |
0.142857… |
1/7
|
23 |
1/10 |
0.1 |
0.043 |
0.125 |
1/8
|
32 |
1/11 |
0.0707… |
0.04 |
0.1111… |
1/9
|
2×5 |
1/12 |
0.06314… |
0.0333… |
0.1 |
1/10
|
計算表
加算表
+ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7
|
0
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7
|
1
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
10
|
2
|
2 |
3 |
4 |
5 |
6 |
7 |
10 |
11
|
3
|
3 |
4 |
5 |
6 |
7 |
10 |
11 |
12
|
4
|
4 |
5 |
6 |
7 |
10 |
11 |
12 |
13
|
5
|
5 |
6 |
7 |
10 |
11 |
12 |
13 |
14
|
6
|
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15
|
7
|
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16
|
乗算表
× |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7
|
0
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0
|
1
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7
|
2
|
0 |
2 |
4 |
6 |
10 |
12 |
14 |
16
|
3
|
0 |
3 |
6 |
11 |
14 |
17 |
22 |
25
|
4
|
0 |
4 |
10 |
14 |
20 |
24 |
30 |
34
|
5
|
0 |
5 |
12 |
17 |
24 |
31 |
36 |
43
|
6
|
0 |
6 |
14 |
22 |
30 |
36 |
44 |
52
|
7
|
0 |
7 |
16 |
25 |
34 |
43 |
52 |
61
|
命数法
八進命数法とは、8 を底とする命数法である。自然言語では、メキシコの北パメ語[2] (Northern Pame) が八進法を用いているが[3]、近縁の中央パメ語[4] (Central Pame) は内部に八進法と十進法を持つ複雑な二十進法を用いている。
アメリカ・カリフォルニア州のユキ語(英語版)[5] は指自体ではなく指の股を数える八進法を用いていたが[6]、現在は死語である。
参考文献
- ^ I・アシモフ『黒後家蜘蛛の会3』創元推理文庫、1981年、73p頁。
- ^ Gordon, Raymond G., Jr., ed. (2005), “Pame, Northern”, Ethnologue: Languages of the World (15 ed.), http://www.ethnologue.com/show_language.asp?code=pmq 2008年3月28日閲覧。
- ^ Avelino, Heriberto (2006), “The typology of Pame number systems and the limits of Mesoamerica as a linguistic area”, Linguistic Typology 10: 41-60, http://linguistics.berkeley.edu/~avelino/Avelino_2006.pdf
- ^ Gordon, Raymond G., Jr., ed. (2005), “Pame, Central”, Ethnologue: Languages of the World (15 ed.), http://www.ethnologue.com/show_language.asp?code=pbs 2008年3月28日閲覧。
- ^ Gordon, Raymond G., Jr., ed. (2005), “Yuki”, Ethnologue: Languages of the World (15 ed.), http://www.ethnologue.com/show_language.asp?code=yuk 2008年3月28日閲覧。
- ^ Ascher, Marcia (1994), Ethnomathematics: A Multicultural View of Mathematical Ideas, Chapman & Hall/CRC, ISBN 0-412-989417
関連項目