二五進法
二五進法(にごしんほう、米:Bi-quinary coded decimal)は、2と5を底(てい)とし、底およびその冪を基準にして十進のひと桁を表す方法である。
コンピュータにおける二五進法[編集]
初期のコンピュータにおいて、ディジタル回路で直接十進で数を扱う方法のひとつとして使われた。基本となる考え方としてはそろばんと同じである。
具体的な実装方法は多岐にわたるが、ここでは一例として最上位ビットを5、そして最下位ビットに向って4、2、1という重みを与えた4ビットで0から9までのビット列を、二進数と比較しながら示す。
| 十進数 | 二五進法 | 二進数 |
|---|---|---|
| 0 | 0 000 | 0000 |
| 1 | 0 001 | 0001 |
| 2 | 0 010 | 0010 |
| 3 | 0 011 | 0011 |
| 4 | 0 100 | 0100 |
| 5 | 1 000 | 0101 |
| 6 | 1 001 | 0110 |
| 7 | 1 010 | 0111 |
| 8 | 1 011 | 1000 |
| 9 | 1 100 | 1001 |
2桁以上については、通常の十進表現と同様に、これを複数桁並べ十のベキの重みを与える。
ここで示した方法はあくまで一例であり、特に3ビットで0~4を表す方法は他にもいろいろありうる。
パック10進数との変換[編集]
- 4bit長の二五進数が連続してレイアウトされたレジスタを考える。このレジスタを左シフトして得られるビットパターンは、二五進数による元の値を二倍してパック10進数で表したものと等しい。
0001_0100_0011_1010(二五進数で1437)↙↙↙ (左シフト) ↙↙↙
0010_1000_0111_0100(パック10進数で2874)
- 上記の操作の反復により二進数を十進数へと高速に変換するアルゴリズムは、「Double_dabble」と呼ばれており、除算を伴わない高速な基数変換アルゴリズムとして知られている。
その他[編集]
アバカス、特に日本の近代以降の四つ珠のそろばんは一種の二五進法である。日本最初の、また独自に開発された手回し式計算機である矢頭良一の自働算盤は、他の同様の計算機は多くが「出入り歯車式」であるが、矢頭のものは独特の横移動式で、その操作の際に5個の歯をまとめて操作できるようにすることで利用の便を図った、ある種の二五進法的な入力操作方式であった[1](そろばんを参考にしたものとも思われている。なお、これは入力についてだけで、機械的には全くの十進方式であり、同機の計算機械としての仕組みにはそろばんは全く無関係である)。
貨幣制度では、発行される硬貨・紙幣の額面は、二五進法が主流である。例えば日本円では、あまり流通していない二千円紙幣を別にすれば、硬貨と紙幣は「1」と「5」のつく単位なので、
- 1系金種(一円硬貨・十円硬貨・百円硬貨・千円紙幣・一万円紙幣)は、すぐ上の金種の5分の1、すぐ下の金種の2倍の金額
- 5系金種(五円硬貨・五十円硬貨・五百円硬貨・五千円紙幣)は、すぐ上の金種の半分、すぐ下の金種の5倍の金額
となっている(海外ではアメリカの25セント硬貨など1系・5系でない硬貨・紙幣が広く一般的に流通している例もある)。