八進法とは
八進法は、数を表現する際に
8を底(基準)とする記数法です。この方式では、0から7までの
8種類の数字を用いて数を表し、
8を「
10」、
9を「11」と表記します。例えば、十進数の16は八進数では
20、十進数の
24は
30となります。このように、
8が
10となるのが八進法の大きな特徴です。一桁の数字が
8までなのは、その次の
九進法となります。
八進記数法の詳細
八進法では、必要に応じて八進数であることを示すために、数の後に
括弧と下付きの
8を付記します。例えば、(1
5)
8 は八進数の1
5を表します。同様に、十進数の場合は(
1[[3]])
10のように表記します。
以下に、十進数と八進数の対応表を示します。
(1[[3]])10 = (15)8 (1×8 + 5)
(16)
10 = (
20)
8 (
2×
8)
(27)10 = (33)8 (3×8 + 3)
(
32)
10 = (40)
8 (4×
8)
(4[[9]])10 = (61)8 (6×8 + 1)
(64)
10 = (
100)
8 (1×
8^
2)
(81)10 = (121)8 (1×8^2 + 2×8^1 + 1)
(
100)
10 = (144)
8 (1×
8^
2 + 4×
8^1 + 4)
(216)10 = (330)8 (3×8^2 + 3×8^1)
(
320)
10 = (
500)
8 (
5×
8^
2)
(512)10 = (1000)8 (1×8^3)
(7
29)
10 = (
1[[3]]
31)
8 (1×
8^
3 +
3×
8^
2 +
3×
8^1 + 1)
(1000)10 = (1750)8 (1×8^3 + 7×8^2 + 5×8^1)
(1
944)
10 = (
36
30)
8 (
3×
8^
3 + 6×
8^
2 +
3×
8^1)
(2000)10 = (3720)8 (3×8^3 + 7×8^2 + 2×8^1)
(
204
8)
10 = (4000)
8 (4×
8^
3)
(2187)10 = (421[[3]])8 (4×8^3 + 2×8^2 + 1×8^1 + 3)
(
2560)
10 = (
5000)
8 (
5×
8^
3)
(4096)10 = (10000)8 (1×8^4)
(7776)
10 = (17140)
8 (1×
8^4 + 7×
8^
3 + 1×
8^
2 + 4×
8^1 + 0)
八進法の利用
八進法は、
2の
3乗が
8であるという特性から、
二進法の
3桁を八進法の1桁で表現できるため、初期のコンピュータで重宝されました。特に、6
ビットを1文字として扱っていたコンピュータでは、八進数
2桁で表現できるため、非常に便利でした。例えば、IBM 70
90(
36
ビット)、CDC 6000(60
ビット)、PDP-
8(1
2ビット)、PDP-7(1
8ビット)などが挙げられます。そのため、コンピュータ業界では広く利用されました。
プログラミング言語のCや
Perlでは、数の前に0を付けると八進数として扱われます。例えば、011は十進数の11ではなく、八進数の11、つまり十進数の
9を指します。
しかし、コンピュータの
ワード長が
8ビット(1バイト)の倍数で構成されるようになると、二進数の4桁をまとめた十六進数の方がより都合が良くなり、八進法の利用は減少しました。
八進法の可分性
八進法は、
8が
2の
3乗であるため、
2以外の素数で割り切れません。このため、1/
3や1/
5のような
奇数分割はできず、単位分数は
2の冪数以外では無限小数になります。
対照的に、六進法(
素因数2と
3)や
十進法(
素因数2と
5)は複数の
素因数を持つため、より多くの数を有限小数で表すことができます。
自然言語の中には、八進法を
命数法として利用しているものも存在します。
メキシコの北パメ語がその一例です。また、ユキ語も指の股を数えることで八進法を用いていたことが知られていますが、現在は死語となっています。ただし、近縁の中央パメ語は、八進法と
十進法を組み合わせた複雑な
二[[十進法]]を使用しています。
参考文献
5%85%AB%E9%80%B2%E6%B3%95'>Wikipedia 八進法
関連項目
2の冪
二進法
四進法
十六進法
三十
二進法
六十四進法
3の冪
三進法
九進法
コンピュータの数値表現
ファイルパーミッション - 八進数で表記されることがある