八進法

8を底とし、底およびその冪を基準にして数を表す方法

八進法(はっしんほう、: 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 709036ビットCDC 6000の60ビットPDP-812ビットPDP-718ビット)、八進法によって表現するのが都合よく、コンピュータ業界ではかつて八進法が広く使われた[1]CPerl などでは、数の前に 0 を付けると八進数と見なされる。例えば 011 は (11)10 ではなく (11)8 すなわち 9 である。しかし、計算機のワード長が 8 ビット(オクテット)からなるバイトの倍数によって構成されることが一般的になると、二進数 4 桁を 1 つにまとめた十六進数のほうが切りがよいため、八進法が使われることは少なくなった。

可分性 編集

10となる素因数分解すると23なので、2でしか割り切れない。即ち、1/31/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]、現在は死語である。

参考文献 編集

  1. ^ I・アシモフ『黒後家蜘蛛の会3』創元推理文庫、1981年、73p頁。 
  2. ^ 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日閲覧。 
  3. ^ 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 
  4. ^ 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日閲覧。 
  5. ^ 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日閲覧。 
  6. ^ Ascher, Marcia (1994), Ethnomathematics: A Multicultural View of Mathematical Ideas, Chapman & Hall/CRC, ISBN 0-412-989417 

関連項目 編集