逆转一个char中的bit

来源:互联网 发布:java 支付宝支付 demo 编辑:程序博客网 时间:2024/06/01 20:38

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;

}