2008年9月7日日曜日

9月6日~コントラストのアルゴリズム~

 16ビットの1と0が途中から左右対称になっているかどうか調べるアルゴリズム…。はたして実用性がどれだけあるかは横に置くとして,考え方は非常に合理的だと思った。ビット列を他のレジスタにコピーして,片方は論理左シフトであふれが生じたかどうかをオーバーフロービットでチェック,コピーしたもう一つのビット列を右シフトしてこぼれ出たオーバーフロービットをチェック。右シフトの場合には,こぼれでたビットがオーバーフローに収納されるので,1か0かがチェックできる。こうして同時にそれぞれのオーバーフローをチェックして8ビットまで繰り返せばすべてが一致しているかどうかがわかるという仕組み。最大限1回から8回までの繰り返しとなるアルゴリズムだが,非常に面白い。ただし実用性がどれだけあるかはまた別の話でCASLの場合はやはりアセンブラ言語なのでその点はしょうがないか…。一番エンターテイメントとしても楽しめるのはVBなのだが,これは正直,遊びに近い感覚の言語になってしまうし…。

0 件のコメント: