Computer Chess Club Archives


Search

Terms

Messages

Subject: More bit reversal...

Author: Dann Corbit

Date: 11:49:27 01/24/03


Convolution:
http://beige.ucs.indiana.edu/B673/node14.html

From :
http://claymore.engineer.gvsu.edu/~blaucha/C2D2/The%20C%20Cheat%20Sheet.pdf

int             reverse(int i)
{                               // Assumes int is a 32-bit integer
    int             mask;
    int             rev;
    int             orvalue;
    for (rev = 0, mask = 0x80000000, orvalue = 1;
         mask != 0;
         mask = mask >> 1, orvalue = orvalue << 1) {
        rev = rev | ((i & mask) ? orvalue : 0);
    }
    return rev;
}

 Which I would rewrite as:


int             reverse(int i)
{                               // Assumes int is a 32-bit integer
    int             mask;
    int             rev;
    int             orvalue;
    for (rev = 0, mask = 0x80000000, orvalue = 1; mask != 0; mask >>= 1, orvalue
<<= 1) {
        rev |= ((i & mask) ? orvalue : 0);
    }
    return rev;
}

This has some sort of bit flipper:
http://www.mactech.com/articles/mactech/Vol.14/14.12/Dec98ProgChallenge/

C++ template idea:
http://coppercode.com/resources_bit_basics.htm



This page took 0 seconds to execute

Last modified: Thu, 15 Apr 21 08:11:13 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.