byte m_ch[12];
byte* p= m_ch;
byte *ptemp=m_ch;
int temp[3]={NULL};
byte ss[4]={NULL};
int类型转byte字节流:
int pointX[3]={123,465,789};
for(int i=0;i<3;i++)
{
memcpy(p,&pointX[i],4);
p+=4;
}
m_ch[12]即就是转换后的byte类型的字节流
byte字节流转int类型:
for(int i=0;i<3;i++)
{
memcpy(ss,ptemp,4); //22 拷贝四个字节(int类型长度为4字节)
//temp[i] = ss[0] & 0xFF; //方法一
//temp[i] |= ((ss[1] << 8) & 0xFF00);
//temp[i]|= ((ss[2] << 16) & 0xFF0000);
//temp[i] |= ((ss[3] << 24) & 0xFF000000);
//方法二
temp[i]=*(int*)ss; //方法二 先将(byte*)指针强转成(int*) 再对int型指针取值
//temp[i]=int(*ss);//错误语句 ss类型为char 1个字节,*ss表示对(byte*)类型指针取值,取出来的值大小只能是1byte大小的值,而int类型长度为4字节,故此语句不合理
ptemp+=4;
}
如有错误之处,不吝赐教!也愿意听取更好的意见。