unsigned char ReverseBit(unsigned char&ch)
{
struct BIT {
unsigned char bit0:1;
unsigned char bit1:1;
unsigned char bit2:1;
unsigned char bit3:1;
unsigned char bit4:1;
unsigned char bit5:1;
unsigned char bit6:1;
unsigned char bit7:1;
};
union UBIT
{
unsigned char ch;
BIT bit;
};
UBIT bch;
bch.ch=ch;
int i;
i=bch.bit.bit0;
bch.bit.bit0=bch.bit.bit7;
bch.bit.bit7=i;
i=bch.bit.bit1;
bch.bit.bit1=bch.bit.bit6;
bch.bit.bit6=i;
i=bch.bit.bit2;
bch.bit.bit2=bch.bit.bit5;
bch.bit.bit5=i;
i=bch.bit.bit3;
bch.bit.bit3=bch.bit.bit4;
bch.bit.bit4=i;
return bch.ch;
}