MFC中编辑框输入一串数据,如何将其转换成HEX码(或者说是16进制数据)
若以下回答无法解决问题,邀请你更新回答
1个回答
展开全部
int a;
printf("%16d",a);
printf("%16d",a);
追问
如果我输入的数据是01 02 03 04 05 06 07 08 09 11 23 34 45 67 .....
共计50个数据,这招好使吗?
追答
这些都是对字符串有特殊要求的。
如果是自定义字符串,如 CString a = "01 02 03 22 33 33....";
由于不能保证每个需转码数据都是两个字符,所以需要另加处理。
如果你保证每个数据之间都是以空格隔开,尝试如下
void func(CString src)
{
int idex = 0;
int t; //数据长度
CString b;
CString dest;
while(idex >= 0){
idex = src.Find(" ",idex); //从idex开始,查找空格位置
t = src.Find(" ",idex+1) - idex; //查找下一个空格,得到数据长度
b = src.Mid(idex+1,t); //b = "01"
printf("%02x",b); //二位16进制 , 08x八位16进制
sprintf(dest,"%04x",b); //dest = "0x0001";
}
}
src.find()<0说明没有找到,在数据串的最后一个会出现这种情况。此时t<0,要加判断,小问题,自己尝试解决吧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询