March 03, 2010

ビット逆転をC++テンプレートで

ちょっとビットの逆転をする必要があったので、コードを書いてみました。ビットの逆転とは、例えば入力が0b10010101なら、出力を0b10101001とすることです。せっかくなのでC++でテンプレートで実装してみました。

参考にしたのは虎の巻『ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか』です。痒いところに手が届くアルゴズムが色々とあり、とても助けられています。このお題以外にも最近では、整数演算のみでルートをとる方法を調べました。

ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか

追加情報として、この実装は可変長ビット列 long_bits.h に盛り込んであります。また今回のお題に関連して、『ビット列の性質を求める』という記事も以前に書いていました。興味があれば是非見てみてください。

23:47 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/740
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。