小弟请问大家:   BYTE变量要对其高4位和低4位分别设置,如何操作?  

解决方案 »

  1.   

    使用为运算符|,一位一位地设
    BYTE n=0;
    n |= 0x80;最高位
    n |= 0x40;
    ...
    n |= 0x01;
      

  2.   

    n |= 0x0f
    n |= 0xf0
      

  3.   

    #define MAKEWORD(a, b)      ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xff)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xff))) << 8))用这个宏
      

  4.   

    上面的是8位,4位的话可以自己修改下#define MAKEBYTE(a, b)      ((WORD)(((BYTE)((DWORD_PTR)(a) & 0xf)) | ((WORD)((BYTE)((DWORD_PTR)(b) & 0xf))) < <4)) 
     这样试一下
      

  5.   

    或者定义结构体struc aa
    {
    BYTE a:4;
    BYTE b:4;
    }
    应该只占一个BYTE的空间,可以分别赋值
      

  6.   

    用运算可否这样:
    n&=0xf0;//清空低4位
    n|=??//设置你的低四位值,如0x0a
    n&=0x0f;//清空高4位
    n!=??//设置你的高4位,如0x80
      

  7.   

    BYTE b;
    //设高四位:
    BYTE x = 0xA;
    b &= 0x0f;
    b |= (x<<4); //把高四位高成x//设低四位
    b &= 0xf0;
    b |= (x & 0x0f); //把低四位高成x
      

  8.   

      移位操作  <<  >>4自己需要的 与 或 操作