how about something like this?
I think my mind works in strange ways sometimes lol. This is to do a 4 bit word to simplify it a bit.
Code:
Unsigned int Reverse(unsigned int var1)
{
unsigned int a,b,c;
unsigned int a = 0; // reversed number goes here
int bit;
bit = 1; //"bit" is the variable used to mask the var1 and find the values of each bit
c = 0;
while ( bit<=8)
{
b = var1 & bit; //find the value of bit 3 - XXX?
if (b=0) //if the value is 1 or 0 sets the variable "a" to the flipped version
{
a = 0; // 0000
c = c | a; //this should set a rolling value of c from its initial value of 0000
//dependant on what the "bit" value is
}
if (b=1)
{
a= 8; // 1000
c = c | a;
}
if (b=2)
{
a=4; //0100
c = c | a;
}
if (b=4)
{
a=2; // 0010
c = c | a;
}
if (b=8)
{
a=1; //0001
c = c | a;
}
<<bit; //shift "bit" left to change the mask
}
reverse = c;
return reverse;
}