八進法
この記事は英語版の対応するページを翻訳することにより充実させることができます。(2024年5月) 翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。
|
八進法(はっしんほう、英: 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.) 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
- ^ Gordon, Raymond G., Jr., ed. (2005), “Pame, Central”, Ethnologue: Languages of the World (15 ed.) 2008年3月28日閲覧。
- ^ Gordon, Raymond G., Jr., ed. (2005), “Yuki”, Ethnologue: Languages of the World (15 ed.) 2008年3月28日閲覧。
- ^ Ascher, Marcia (1994), Ethnomathematics: A Multicultural View of Mathematical Ideas, Chapman & Hall/CRC, ISBN 0-412-989417