二五進法

2と5を底とし、底およびその冪を基準にして十進数一桁を表す方法

二・五進法にごしんほう: bi-quinary coded decimal)は、25ていとし、底およびそのを基準にして十進法の一桁を表す方法である。

数列

二・五進法は、桁上がりが通常のN進法とは異なり、桁上がりがの二段階になる。

以下に、二・五進法と、五が絡むN進法である六進法(5+1 = 10)と十進法(5+5 = 10)との数列の差異を表記する。

零から二十まで
二・五進法六進法十進法
000
111
222
333
444
1055
11106
12117
13128
14139
1:001410
1:011511
1:022012
1:032113
1:042214
1:102315
1:112416
1:122517
1:133018
1:143119
2:003220
二十一から四十まで
二・五進法六進法十進法
2:013321
2:023422
2:033523
2:044024
2:104125
2:114226
2:124327
2:134428
2:144529
3:005030
3:015131
3:025232
3:035333
3:045434
3:105535
3:1110036
3:1210137
3:1310238
3:1410339
4:0010440
五十前後と百前後
二・五進法六進法十進法
4:1011345
4:1111446
4:1211547
4:1312048
4:1412149
10:0012250
10:0112351
10:0212452
10:0312553
10:0413054
14:1124096
14:1224197
14:1324298
14:1424399
1:00:00244100
1:00:01245101
1:00:02250102
二百十六前後
二・五進法六進法十進法
2:00:14545209
2:01:00550210
2:01:01551211
2:01:02552212
2:01:03553213
2:01:04554214
2:01:10555215
2:01:111000216
2:01:121001217
2:01:131002218
2:01:141003219
2:02:001004220
五百前後
二・五進法六進法十進法
4:14:042142494
4:14:102143495
4:14:112144496
4:14:122145497
4:14:132150498
4:14:142151499
10:00:002152500
10:00:012153501
10:00:022154502
10:00:032155503
10:00:042200504
10:00:102201505
65前後
二・五進法六進法十進法
12:12:11:14555457769
12:12:12:00555507770
12:12:12:01555517771
12:12:12:02555527772
12:12:12:03555537773
12:12:12:04555547774
12:12:12:10555557775
12:12:12:111000007776
12:12:12:121000017777
12:12:12:131000027778
12:12:12:141000037779
12:12:13:001000047780

表記例として、実際のローマ数字(二・五進法)と、ローマ数字を六進法と十進法に当て嵌めた場合の差異を表記する。減算則は適用しない。

  • 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までのビット列を、二進数と比較しながら示す。

十進数二・五進法二進数
00 0000000
10 0010001
20 0100010
30 0110011
40 1000100
51 0000101
61 0010110
71 0100111
81 0111000
91 1001001

2桁以上については、通常の十進表現と同様に、これを複数桁並べ十の冪の重みを与える。

別のやり方として、リレー式計算機 FACOM 128 では次のような7ビットによる表現が実際に用いられた[1][2]。下位5ビットは十進法の0から4に一対一で対応し、上位2ビットで5の重みを表現する。冗長な符号構成だが、2倍・5倍・10倍が簡単に求められるので3増し符号よりも高速に乗算できた。また、2/7 の定比率符号(常に7ビットのうち2ビットが1、他は0)なので誤り検出ができ、計算機の信頼性向上に繋がった[3]

十進数二・五進法二進数
001 000010000
101 000100001
201 001000010
301 010000011
401 100000100
510 000010101
610 000100110
710 001000111
810 010001000
910 100001001

ここで示した方法はあくまで一例であり、特に下位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系でない硬貨・紙幣が広く一般的に流通している例もある)。

関連項目

🔥 Top keywords: メインページ宮崎麗果特別:検索豊後水道松本忠久土居志央梨若葉竜也能登半島地震 (2024年)田中雄士長谷部誠井上道義The GazettE若林志穂服部百音黒木啓司REITA虎に翼平井理央出口夏希サーブ (盲導犬)三鷹事件セウォル号沈没事故白眞勲三淵嘉子高橋克也 (オウム真理教)ME:Iルーシー・ブラックマン事件佐藤ありさ杉咲花蜜谷浩弥水野真紀亀井亜紀子 (政治家)熊本地震 (2016年)水原一平井川意高中川安奈 (アナウンサー)内藤剛志いなば食品YOSHIKI