如,byte a;
   int b;
取a中第2~5位的数值,存在b中,怎么做?谢谢指点!

解决方案 »

  1.   

    取哪一个,就生成一个在这个位置上为1的掩码,然后与源数据求AND,比如:b = a & (1 < (a - 1)); //a为要求的位,从1开始,如果从0开始,就不用减1
      

  2.   

    b = a & (1 < (x - 1)); //x为要求的位,从1开始,如果从0开始,就不用减1
      

  3.   

    BYTE byObject;
    int  nCondition = x;BYTE byResult = byObject >> x & 1;
    或者简单写个宏
    #define  GETBITAT( object, condition)    (object>>condition&1)
      

  4.   

    应该用 << 吧!
    b = a & (1 << (x - 1));