64,654
社区成员
发帖
与我相关
我的任务
分享
unsigned char buf[4]={1,2,3,0x84};
unsigned char *p;
signed short int si;
unsigned short int ui;
p=buf+2;
si=*(( signed short int *)p);//0x8403==-31741
ui=*((unsigned short int *)p);//0x8403== 33795u
#define MAKEWORD(a, b) ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8))
//有可能MAKEWORD系统已经定义好了
WORD w = MAKEWORD(pBuff[0], pBuff[1])
或者 w = MAKEWORD(pBuff[1], pBuff[0])
//看字节序需要
BYTE buffer[2] = {1,2};
short number = (buffer[1] << 8) + buffer[0];
BYTE buffer[2] = {0x1,0x2};
BYTE *p = buffer;
short num;
num = *(short*)p;
printf("%x", num);