二・
五進法は、数を
2と
5を底(てい)として表現する方式です。この方法では、
十進法の一桁を、
2と
5の冪(べき)を基準に表します。一般的なN進法とは異なり、桁上がりは五と十の二段階で発生します。
数列の比較
二・
五進法、
六進法、
十進法の数列の違いを見てみましょう。
六進法は
5+1=
10、
十進法は
5+
5=
10と桁上がりが起こります。以下に、それぞれの数列における数の変化を示します。
表記例
実際のローマ数字(二・
五進法)と、それを
六進法と
十進法に当てはめた場合の差異を以下に示します。減算則は適用しない表記です。
177 (1212 二・五進法)
二・
五進法: CLXXVII
六進法: XXXXVVVVVIII
十進法: CXXXXXXXIIIIIII
1936 (1140311 二・五進法)
二・
五進法: MCMXXXVI
六進法: MCCXXXXXVVVVIIII
十進法: MCCCCCCCCCXXXIIIIII
初期の
コンピュータでは、ディジタル回路で十進数を直接扱う方法の一つとして二・
五進法が使われました。そろばんと同じように、位取りを利用した数の表現方法です。具体的な実装方法は様々ですが、一例として4
ビットを使用し、最上位
ビットを
5、残りの
ビットに4、
2、1の重みを与えて0から9までの数を表現する方法があります。また、
FACOM 1
28では、7
ビットを用いて下位
5ビットで0から4、上位
2ビットで
5の重みを表現していました。この方式は、
2倍、
5倍、
10倍の計算が容易で、誤り検出も可能であったため、計算機の信頼性向上に貢献しました。
別の方法として、下位3
ビットで0~4を表す方法もあります。これらの実装は一例であり、他にも様々な方法が存在します。
パック十進数との変換
4
ビットの二進数(
ニブル)において、
5以上であれば3を足す処理は、パック
10進数を二五進数に変換する処理に相当します。
二・五進数で表された4
ビットの連続データ(レジスタ)を左シフトすると、元の値を
2倍したパック
10進数と同じ結果が得られます。
例:
0001_0
100_0011_
1010 (二五進数で1437)
左シフト
00
10_
1000_0111_0
100 (パック
10進数で
2874)
この操作を繰り返すことで、二進数を十進数に高速変換するアルゴリズム「Double_dabble」が実現します。これは、除算を伴わない高速な基数変換アルゴリズムとして知られています。
その他
そろばん: 特に日本の近代以降の四つ珠のそろばんは、一種の二・
五進法と見なすことができます。
矢頭良一の自働算盤: 日本初の
機械式計算機である矢頭良一の自働算盤は、横移動式の操作で
5個の歯をまとめて操作する機構を備え、ある種の二・
五進法的な入力方式を採用していました。これはそろばんを参考にしたとも言われています。
貨幣制度: 多くの国の貨幣制度では、二・
五進法が主流です。例えば、日本円では1円、
5円、
10円、
50円、
100円、
500円硬貨や、
1000円、
5000円、
10000円紙幣など、「1」と「
5」の単位で構成されています。これは、上の単位の
5分の1、下の単位の
2倍、またはその逆という関係性を持っています。ただし、海外にはアメリカの
25セント硬貨のように、1と
5の単位に沿わない硬貨も存在します。
関連項目
二進法
五進法
六進法
十進法
十
二進法
十
五進法
二十進法
三
十進法
* 六
十進法