在产品的设计中,需要上位机来调试数据。但对数据格式之间的转换总是很模糊,现在总结一下。
将一个字符转换为16进制的方法:
例如:'A'----> 0x0A
char ConvertChar2Hex(char ch)
{
if((ch>='0')&&(ch<='9'))
return ch-0x30;
else if((ch>='A')&&(ch<='F'))
return ch-'A'+10;
else if((ch>='a')&&(ch<='f'))
return ch-'a'+10;
else return (-1);
}
将一个16进制数转换为字符的方法:
例如:0-F -> 返回'0'-'F'
uchar ConvertHex2Char(uchar v)
{
v &= 0x0f;
if(v<10)
return v+'0';
else
return v-10+'A';
}
将数组转换为Cstring型变量
unsigned char sendrx[7];
CString strtemp,sendstr;
sendrx[0]=0xAB;sendrx[1]=0xCD;sendrx[2]=0xEF;
for(k=0;k<7;k++){ //将数组转换为Cstring型变量
BYTE bt=*(char*)(sendrx+k); //字符型
strtemp.Format("%02X",bt); //将字符以十六进制方式送入临时变量strtemp存放
sendstr = sendstr + strtemp; //加入接收编辑框对应字符串
}