二・五進法(、英: bi-quinary coded decimal)は、2と5を底()とし、底およびその冪を基準にして十進法の一桁を表す方法である。
数列
二・五進法は、桁上がりが通常のN進法とは異なり、桁上がりが五と十の二段階になる。
以下に、二・五進法と、五が絡むN進法である六進法(5+1 = 10)と十進法(5+5 = 10)との数列の差異を表記する。
零から二十まで
二・五進法 |
六進法 |
十進法
|
0 |
0 |
0
|
1 |
1 |
1
|
2 |
2 |
2
|
3 |
3 |
3
|
4 |
4 |
4
|
10 |
5 |
5
|
11 |
10 |
6
|
12 |
11 |
7
|
13 |
12 |
8
|
14 |
13 |
9
|
1:00 |
14 |
10
|
1:01 |
15 |
11
|
1:02 |
20 |
12
|
1:03 |
21 |
13
|
1:04 |
22 |
14
|
1:10 |
23 |
15
|
1:11 |
24 |
16
|
1:12 |
25 |
17
|
1:13 |
30 |
18
|
1:14 |
31 |
19
|
2:00 |
32 |
20
|
二十一から四十まで
二・五進法 |
六進法 |
十進法
|
2:01 |
33 |
21
|
2:02 |
34 |
22
|
2:03 |
35 |
23
|
2:04 |
40 |
24
|
2:10 |
41 |
25
|
2:11 |
42 |
26
|
2:12 |
43 |
27
|
2:13 |
44 |
28
|
2:14 |
45 |
29
|
3:00 |
50 |
30
|
3:01 |
51 |
31
|
3:02 |
52 |
32
|
3:03 |
53 |
33
|
3:04 |
54 |
34
|
3:10 |
55 |
35
|
3:11 |
100 |
36
|
3:12 |
101 |
37
|
3:13 |
102 |
38
|
3:14 |
103 |
39
|
4:00 |
104 |
40
|
五十前後と百前後
二・五進法 |
六進法 |
十進法
|
4:10 |
113 |
45
|
4:11 |
114 |
46
|
4:12 |
115 |
47
|
4:13 |
120 |
48
|
4:14 |
121 |
49
|
10:00 |
122 |
50
|
10:01 |
123 |
51
|
10:02 |
124 |
52
|
10:03 |
125 |
53
|
10:04 |
130 |
54
|
14:11 |
240 |
96
|
14:12 |
241 |
97
|
14:13 |
242 |
98
|
14:14 |
243 |
99
|
1:00:00 |
244 |
100
|
1:00:01 |
245 |
101
|
1:00:02 |
250 |
102
|
二百十六前後
二・五進法 |
六進法 |
十進法
|
2:00:14 |
545 |
209
|
2:01:00 |
550 |
210
|
2:01:01 |
551 |
211
|
2:01:02 |
552 |
212
|
2:01:03 |
553 |
213
|
2:01:04 |
554 |
214
|
2:01:10 |
555 |
215
|
2:01:11 |
1000 |
216
|
2:01:12 |
1001 |
217
|
2:01:13 |
1002 |
218
|
2:01:14 |
1003 |
219
|
2:02:00 |
1004 |
220
|
五百前後
二・五進法 |
六進法 |
十進法
|
4:14:04 |
2142 |
494
|
4:14:10 |
2143 |
495
|
4:14:11 |
2144 |
496
|
4:14:12 |
2145 |
497
|
4:14:13 |
2150 |
498
|
4:14:14 |
2151 |
499
|
10:00:00 |
2152 |
500
|
10:00:01 |
2153 |
501
|
10:00:02 |
2154 |
502
|
10:00:03 |
2155 |
503
|
10:00:04 |
2200 |
504
|
10:00:10 |
2201 |
505
|
65前後
二・五進法 |
六進法 |
十進法
|
12:12:11:14 |
55545 |
7769
|
12:12:12:00 |
55550 |
7770
|
12:12:12:01 |
55551 |
7771
|
12:12:12:02 |
55552 |
7772
|
12:12:12:03 |
55553 |
7773
|
12:12:12:04 |
55554 |
7774
|
12:12:12:10 |
55555 |
7775
|
12:12:12:11 |
100000 |
7776
|
12:12:12:12 |
100001 |
7777
|
12:12:12:13 |
100002 |
7778
|
12:12:12:14 |
100003 |
7779
|
12:12:13:00 |
100004 |
7780
|
表記例として、実際のローマ数字(二・五進法)と、ローマ数字を六進法と十進法に当て嵌めた場合の差異を表記する。減算則は適用しない。
- 1:12:12(二・五進法) = 453(六進法) = 177(十進法)
- 二・五進法:CLXXVII
- 六進法:XXXXVVVVVIII (62 = X、6 = V)
- 十進法:CXXXXXXXIIIIIII (A2 = C、A = X となり、50(10)はXが5個、5もIが5個のまま)
- 1:14:03:11(二・五進法) = 12544(六進法) = 1936(十進法)
- 二・五進法:MCMXXXVI
- 六進法:MCCXXXXXVVVVIIII (64 = M、63 = C)
- 十進法:MCCCCCCCCCXXXIIIIII (A3 = M となり、500(10)はCが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桁以上については、通常の十進表現と同様に、これを複数桁並べ十の冪の重みを与える。
別のやり方として、リレー式計算機 FACOM 128 では次のような7ビットによる表現が実際に用いられた[1][2]。下位5ビットは十進法の0から4に一対一で対応し、上位2ビットで5の重みを表現する。冗長な符号構成だが、2倍・5倍・10倍が簡単に求められるので3増し符号よりも高速に乗算できた。また、2/7 の定比率符号(常に7ビットのうち2ビットが1、他は0)なので誤り検出ができ、計算機の信頼性向上に繋がった[3]。
十進数 |
二・五進法 |
二進数
|
0 |
01 00001 |
0000
|
1 |
01 00010 |
0001
|
2 |
01 00100 |
0010
|
3 |
01 01000 |
0011
|
4 |
01 10000 |
0100
|
5 |
10 00001 |
0101
|
6 |
10 00010 |
0110
|
7 |
10 00100 |
0111
|
8 |
10 01000 |
1000
|
9 |
10 10000 |
1001
|
ここで示した方法はあくまで一例であり、特に下位3ビットで0~4を表す方法は他にもいろいろありうる。
パック十進数との変換
- 4bit長の二進数(ニブル)に対し、5以上であれば3を足す処理は、パック10進数を二五進数に変換する処理に等しい。
- 4bit長の二五進数が連続してレイアウトされたレジスタを考える。このレジスタを左シフトして得られるビットパターンは、二五進数による元の値を二倍してパック10進数で表したものと等しい。
0001_0100_0011_1010
(二五進数で1437)
↙↙↙ (左シフト) ↙↙↙
0010_1000_0111_0100
(パック10進数で2874)
- 上記の操作の反復により二進数を十進数へと高速に変換するアルゴリズムは、「Double_dabble(英語版)」と呼ばれており、除算を伴わない高速な基数変換アルゴリズムとして知られている。
その他
アバカス、特に日本の近代以降の四つ珠のそろばんは一種の二・五進法である。日本最初の、また独自に開発された手回し式計算機である矢頭良一の自働算盤は、他の同様の計算機は多くが「出入り歯車式」であるが、矢頭のものは独特の横移動式で、その操作の際に5個の歯をまとめて操作できるようにすることで利用の便を図った、ある種の二・五進法的な入力操作方式であった[4](そろばんを参考にしたものとも思われている。なお、これは入力についてだけで、機械的には全くの十進方式であり、同機の計算機械としての仕組みにはそろばんは全く無関係である)。
貨幣制度では、発行される硬貨・紙幣の額面は、二・五進法が主流である。例えば日本円では、あまり流通していない二千円紙幣を別にすれば、硬貨と紙幣は「1」と「5」のつく単位なので、
となっている(海外ではアメリカの25セント硬貨など1系・5系でない硬貨・紙幣が広く一般的に流通している例もある)。
注
- ^ 松原宏、山口詔規「リレー式自動計算機について」『計測』第7巻第5号、日本計測学会、1957年5月、235-244頁、doi:10.11499/sicejl1951.7.235。
- ^ 池田敏雄「リレー式電気計算機についてI」『科学』第25巻第6号、岩波書店、1955年6月、263-278頁、doi:10.11501/3217892。
- ^ リレーによる演算回路は、リレーの接触不良により誤った解を出力することが多かったので、符号の冗長性を利用した自己検査機能を持たせ、誤った解が出力されることを防いだ。
- ^ 山田昭彦. “矢頭良一の機械式卓上計算機「自働算盤」に関する調査報告” (PDF). 産業技術史資料情報センター. 2013年12月3日時点のオリジナルよりアーカイブ。2013年12月11日閲覧。
関連項目