char a = 10011101b;
char b = 0;
for(int i=0; i<8; i++)
    b = (a<<i)>>(7-i);

解决方案 »

  1.   

    char i;
    i&0x01 // 第1位
    i&0x02 // 第2位
    ... ...
    i&0x80 // 第8位
      

  2.   

    用与&操作
    一位一位读就可以了
    比如说
    int data=0h10011101;
    int temp,bit1,bit2;
    temp=0h00000001;
    bit1=a&temp;//右边第一位,也就是1
    temp=0h00000010;
    bit2=a&temp;//右边第二位,也就是0
      

  3.   

    union UBits
    {
      struct
      {
        unsigned char a : 1 ;
        unsigned char b : 1 ;
        unsigned char c : 1 ;
        unsigned char d : 1 ;
        unsigned char e : 1 ;
        unsigned char f : 1 ;
        unsigned char g : 1 ;
        unsigned char h : 1 ;
      } ;
      unsigned char ch ;
    } ;UBits bits ; 
    bits.ch = 0x9D ; // 10011101b// then {a, .., h} from lower to upper,
    bits.a (== 1)
    bits.b (== 0)
    bits.c (== 1)
    bits.d (== 1)
    bits.e (== 1)
    bits.f (== 0)
    bits.g (== 0)
    bits.h (== 1)