union DATA_CONVERT{
int a;
BYTE b[2];
};DATA_CONVERT a;
a.a =0x1f4;
用union

解决方案 »

  1.   

    整形是4个字节,要用4个BYTE存储。至于说BYTE显示的时候是不是16进制,是你显示的问题!
    BYTE btData[4];
    int n=500;
    btData[0]=BYTE(n>>24);
    btData[1]=BYTE(n>>16);
    btData[2]=BYTE(n>>8);
    btData[3]=BYTE(n);显示:
    CString str;
    str.Format("%x",btData[0]);
      

  2.   


    如果是short int a =500呢
      

  3.   

    SHORT a = 0x01F4;
    BYTE b = *(LPBYTE)&a;
    BYTE c = *((LPBYTE)&a+1);
    用指针也可以.
      

  4.   


    byte和 unsigned char 是不是等同。
      

  5.   

    对于电脑来说数据都是二进制的, 只是为了给人看, 才会显示成10进制或者16进制. 实际在计算机内存里都是一样的.
    所以SHORT a = 500;  //
    BYTE *pByte = (BYTE*)&a;
    pByte[0] ==  0xF4      //注: 这里对应的是低字节在前高位在后.
    pByte[1] == 0x01
      

  6.   

    int i;//假定为4 bytes
    byte a[2];
    i=500;
    //小端内存:
    a[0] = *((byte *)&i)+1);//0x01
    a[1] = *((byte *)&i));//0xF4
    //大端内存:
    a[0] = *((byte *)&i)+2);//0x01
    a[1] = *((byte *)&i)+3);//0xF4