18,356
社区成员
发帖
与我相关
我的任务
分享
int String2Hex(CString str,CByteArray &senddata)//下面这2个函数可以转到16进制,加进去用吧
{
char lstr,hstr;
int hexdata,lowhexdata;
int hexdatalen=0;
int len=str.GetLength();
char temp[1024];
senddata.SetSize(len/2);
strcpy(temp, str.GetBuffer(str.GetLength()));
for(int i=0;i<len;)
{
hstr=temp[i];
if(hstr==' ')
{
i++;
continue;
}
i++;
if(i>=len)
break;
lstr=str[i];
hexdata=ConvertHexChar(hstr);
lowhexdata=ConvertHexChar(lstr);
if((hexdata==16)||(lowhexdata==16))
break;
else
hexdata=hexdata*16+lowhexdata;
i++;
senddata[hexdatalen]=(char)hexdata;
hexdatalen++;
}
senddata.SetSize(hexdatalen);
return hexdatalen;
}
char ConvertHexChar(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);
}