C++菜鸟求问, BYTE组合的问题
DWORD dPtr=0x17181920;
DWORD dId=0x0000139c;
BYTE b[]={0xAC,0x37,04,01,dPtr,08,07,05,dwId};
请问该怎样写代码,才能让b变成:
{0xAC,0x37,04,01,20,19,18,17,08,07,05,9c,13,00,00}
[解决办法]
DWORD dPtr=0x17181920;
DWORD dId=0x0000139c;
BYTE b[]={0xAC,0x37,0x04,0x01,0,0,0,0,0x08,0x07,0x05,0,0,0,0};
DWORD t = 0xFFFF;
unsigned short *pt = (unsigned short*)&t;
if (*pt==0) // 判断机器是大端还是小端
{
BYTE* p = (unsigned char*)&dPtr;
b[7] = *p;
b[6] = *(p+1);
b[5] = *(p+2);
b[4] = *(p+3);
p = (BYTE*)&dId;
b[14] = *p;
b[13] = *(p+1);
b[12] = *(p+2);
b[11] = *(p+3);
}else{
BYTE* p = (BYTE*)&dPtr;
b[4] = *p;
b[5] = *(p+1);
b[6] = *(p+2);
b[7] = *(p+3);
p = (BYTE*)&dId;
b[11] = *p;
b[12] = *(p+1);
b[13] = *(p+2);
b[14] = *(p+3);
}