我现在做一个串口通信的程序,我的数据包,字符显示是"%"3f“,改为16进制显示是:“fe fe fe 68 25 03 11 22 33 66 86",请问各位高手,现在定义一个char buf[11],怎么样将数据包数据提取转换为buf[0]=0xfe,buf[1]=0xfe,buf[2]=0xfe...buf[10]=0x66,buf[11]=0x86,我试了很多方法,但水平有限,请各位高手帮忙。
解决方案 »
- IPV6 服务端 客户端 求大神!
- 得到了IWebBrowser2 接口,如何让IE跳转到相应的页面?
- 我在一个struct中加入一个class,然后将这个struct申明成map<struct>,报如下错,怎么办?
- 关于使用c语言+winsock2实现简单消息发送
- 一个非常简单的问题:在WINDOWS下把C++代码生成COM格式文件可行么?
- 谁知道2001年的MSDN的下载地址?
- 高分请教:怎样实现在两个CListCtrl控件之间拖放文件
- 本来查找出很多ini文件的读写,而且都说的很好。但我无论按照那种方法都不能写入?不知道为什么
- 测试string的4个函数有错误,错在哪里?
- CSocket
- 数组
- 数组定义
只是你调试的时候是根据代码中定义的数据类型来查看的,如果是char型,会当作字符串来显示,改成BYTE型就不会当作字符串来显示了。另外char表示有符号数,BYTE表示无符号数,对于char型数据,0xfe会被当作是-2,有些时候会导致错误的结果,用BYTE就没问题。
你是在哪儿看的→内存?界面?内存中本来就是你说的样子,无须任何改变!
如果是界面要显示成你所说的样子,那得自己做转换!char chHexInside[4];
sprintf(chHexInside, "%02X", buf[i]);然后界面显示chHexInside就行了。
sprintf(chHexInside, "%02X", buf[i]);
同意5楼