二五進法
4bit長の二進数(ニブル)に対し、5以上であれば3を足す処理は、パック10進数を二五進数に変換する処理に等しい。
4bit長の二五進数が連続してレイアウトされたレジスタを考える。このレジスタを左シフトして得られるビットパターンは、二五進数による元の値を二倍してパック10進数で表したものと等しい。
0001_0100_0011_1010 (二五進数で1437)
↙↙↙ (左シフト) ↙↙↙
0010_1000_0111_0100 (パック10進数で2874)
上記の操作の反復により二進数を十進数へと高速に変換するアルゴリズムは、「Double_dabble(英語版)」と呼ばれており、除算を伴わない高速な基数変換アルゴリズムとして知られている。
↑ 松原宏、山口詔規「リレー式自動計算機について」『計測』第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日閲覧。