タグ

ブックマーク / takeda25.hatenablog.jp (1)

  • ビット逆転ループ - アスペ日記

    注意: この記事は読んでも役に立ちません。頭を無駄に使いたい人向け。 普通のループは、たとえば 0 から 255 までなら、0 -> 1 -> 2 -> ... というようにループする。 そういう普通のループじゃなくて、ビットを逆転させた数字でループできたらいいのになぁということが最近あった。 0 -> 128 -> 64 -> ... のように。 探してみると、そういうページが見つかった。 さすがネットは広い。 コードは以下の通り。 int r = 0; // counter int s = 0; // bit-reversal of r/2< int N = 256; // N can be any power of 2 int N2 = N << 1; // N<<1 == N*2 do { printf("%u ", s); r += 2; s ^= N - (N / (r&-r)

    ビット逆転ループ - アスペ日記
  • 1