正文

大家的帮助贴~~~~~~~~2007-09-13 15:34:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sword2008/29385.html

分享到:

int CSCommTestDlg::String2Hex(CString str, CByteArray &senddata)
{
int hexdata,lowhexdata;
int hexdatalen=0;
int len=str.GetLength();
senddata.SetSize(len/2);
for(int i=0;i<len;)
{
char lstr,hstr=str[i];
if(hstr==' ')
{
i++;
continue;
}
i++;
if(i>=len)
break;
lstr=str[i];
hexdata=ConvertHexChar(hstr);
//功能:若是在0-F之间的字符,则转换为相应的十六进制字符,否则返回-1
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;
}

//这是一个将字符转换为相应的十六进制值的函数
//好多C语言书上都可以找到
//功能:若是在0-F之间的字符,则转换为相应的十六进制字符,否则返回-1
char CSCommTestDlg::ConvertHexChar(char ch)
{
if((ch>='0')&&(ch<='9'))     //0-9
return ch-0x30;
else if((ch>='A')&&(ch<='F'))// 大写A-F
return ch-'A'+10;
else if((ch>='a')&&(ch<='f'))// 小写a-f
return ch-'a'+10;
else return (-1);
}

标志一共有15个,加上三个控制标志的标志,一共是18个。

这个是VC串口转换的

由字符到HEX

o

他说的是C语言,我说的是C++

3q ````````

有搞好的源代码,串行口相关的,有VB,有VC的

还有二进制输出



基本上你们得用二进制输出

那个得设置ios::binary

我看看先

还得使用read()和write()函数写入数据结构或者字符串或者数值。

ios::binary必须与read()和write()函数搭配使用。

阅读(3326) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册