修改函数原型,确保每次malloc后可以释放堆控件

char * HexToString(char *str,unsigned char Hex[],unsigned char lenth)
{unsigned char i=0,j=0;unsigned char tema,temp;//char *str=(char*)malloc(lenth*2);for(i=0;i<lenth;i++){tema=(Hex[i]>>4)&0x0F;str[j]=IntToStr(tema);j++;temp=Hex[i]&0x0F;str[j]=IntToStr(temp);j++;}str[j]='\0';return str;
}
<pre name="code" class="cpp">char *strH=(char*)malloc(4*2);QByteArray macStr=HexToString(strH,addrC,4);if(strH!=NULL)free(strH);

今天做东西要用这个,读出来的ID号是16进制的,但是返回给上层的是字符串,LINUX下的底层函数想不到。比如unsigned char temp[10]={0xAB,0XAB,0XAB,0XAB,0XDB,0XEB,0XAB,0XAC,0XAC,0xee};我要输出的就是这样子,底层传上来的不是ASCII码。蛋痛得很`其他资料也没找到,本来想用sprintf函数的。可是完全不对头。后面已经写了这个功能函数。


# include <stdlib.h>#define DATA_LENGTH 20
//函 数 名:StrToInt()
//功能描述:把字符转换成对应的数字,比如a转换成10
char StrToInt(char aChar)
{char ss;switch(aChar){case '0': ss= 0;break;case '1': ss= 1;break;case '2': ss= 2;break;case '3': ss= 3;break;case '4': ss= 4;break;case '5': ss= 5;break;case '6': ss= 6;break;case '7': ss= 7;break;case '8': ss= 8;break;case '9': ss= 9;break;case 'A': ss= 10;break;case 'B': ss= 11;break;case 'C': ss= 12;break;case 'D': ss= 13;break;case 'E': ss= 14;break;case 'F': ss= 15;break;default:break;}//printf("%c\n",ss);return ss;
}
//函 数 名:HexToAsc()
//功能描述:把16进制转换为ASCII
char IntToStr(unsigned char aChar){char ss;switch(aChar){case 0: ss= '0';break;case 1: ss= '1';break;case 2: ss= '2';break;case 3: ss= '3';break;case 4: ss= '4';break;case 5: ss= '5';break;case 6: ss= '6';break;case 7: ss= '7';break;case 8: ss= '8';break;case 9: ss= '9';break;case 10: ss= 'A';break;case 11: ss= 'B';break;case 12: ss= 'C';break;case 13: ss= 'D';break;case 14: ss= 'E';break;case 15: ss= 'F';break;default:break;}//printf("%c\n",ss);return ss;
}
char * HexToString(unsigned char Hex[],unsigned char lenth)
{unsigned char i=0,j=0;unsigned char tema,temp;char *str=(char*)malloc(lenth*2);printf("Large:-----%d\n",lenth*2);for(i=0;i<lenth;i++){tema=(Hex[i]>>4)&0x0F;printf("%d\n",tema);str[j]=IntToStr(tema);printf("i=%d, %c\n",i,str[j]);j++;temp=Hex[i]&0x0F;printf("%d\n",temp);str[j]=IntToStr(temp);printf("i=%d, %c\n",i,str[j]);j++;}str[j]='\0';printf("Large:--j=%d\n",j);for(i=0;i<lenth*2;i++){printf("kkkkk:i=%d  ;str[i]:%c\n",i,str[i]);}printf("wqf:%s\n",str);return str;
}void main()
{char *str=NULL;unsigned char temp[10]={0xAB,0XAB,0XAB,0XAB,0XDB,0XEB,0XAB,0XAC,0XAC,0xee};str=HexToString(temp,10);printf("%s\n",str);
}

16进制数组转字符串相关推荐

  1. python定义16进制数组,十六进制字符串到python中的字节数组

    I have a long Hex string that represents a series of values of different types. I wish to convert th ...

  2. C++ 16进制字符串转16进制数组函数

    @TOCC++ 16进制字符串转16进制数组函数 unsigned char buf[], int len) { if (str != NULL && buf != NULL & ...

  3. 16进制数组和ASK码字符之间的转换

    BIN 16进制数组 HEX ASK码字符串 #define PCD_NO_ERROR 0 // 操作成功执行 int HexToBin(unsigned char *shex,unsigned ch ...

  4. python使用matplotlib可视化、使用英文单次或者缩写指定使用的颜色、使用16进制的RGB字符串指定颜色、使用RGB或者RGBA数字元组指定颜色

    python使用matplotlib可视化.使用英文单次或者缩写指定使用的颜色.使用16进制的RGB字符串指定颜色.使用RGB或者RGBA数字元组指定颜色 目录

  5. python定义16进制数组_python 文件转成16进制数组的实例

    如下所示: #! /usr/bin/python2 # coding=utf-8 import numpy import binascii if __name__=='__main__': #my_m ...

  6. 16进制格式的字符串怎样转换为整数

    16进制格式的字符串怎样转换为整数 请教一个问题在使用一个第三方包的时候我在res/layout目录创建了一个跟该包下layout同名的布局文件结果显示的时候实现效果就被项目中新创建的布局样式所替代那 ...

  7. MFC中将用户输入的表示16进制数的字符串转换成16进制数输出显示(包含1.wstring转成string的方法函数2.用boost库拆分字符串的函数3.字符转16进制数值的函数)

    前期准备: 1.电脑中安装好boost库,我的电脑中安装在C盘根目录下,如下图所示: 2.配置好boost环境变量,如下图所示: 3.开发环境VS2015,工程为MFC应用程序 需要的头文件如下: # ...

  8. byte数组转字符串_VS2012 C# 16进制数与字符串的互换

    #编程基础##我要上头条# 一.字符串转换为16进制字节数组的步骤 1.将字符串按每两个字符拆分并插入逗号为分隔符: 2.将拆分后的字符串分离为字符串数组: 3.将字符串数组转换成字节数组并检测字符是 ...

  9. java 16进制数组 字符串_byte数组转换成16进制字符串和字符数组的方法

    byte数组转换成16进制字符串String: public class CommonUtil { /** * byte数组转换成16进制字符串 * @param src * @return */ p ...

最新文章

  1. php处理不确定笛卡尔积,PHP笛卡尔积实现算法示例
  2. cassandra百亿级数据库迁移实践
  3. sqlserver视图
  4. 携程将推“3+2”工作模式:每周到岗3天,在家2天,你羡慕吗?
  5. vs查询mysql返回数据_vs与数据库连接查询
  6. dotproject问题。
  7. Go基础-go的源码文件以及常用命令
  8. mysql查看表空间占用情况
  9. Xshell学生版免费下载使用
  10. 四叉树(QuadTree)原理
  11. 人工智能机器学习Java也可以
  12. 那些黑天鹅教会我们的IT知识
  13. linux下模拟键盘的几种方法
  14. Python学习week5
  15. [UIView numberofRowsInSection]unrecognized selector sent to instance 0x1808bef0 错误
  16. ES8 - async 和 await
  17. 到底什么是类脑计算?
  18. SAP 系统账期开关
  19. 各个平台3年来最火的183个Java面试问题,太透了!(建议收藏)
  20. 用scrapy+selenium + phantomjs 爬取vip网页,保存为json格式,写入到mysql数据库,下载图片(一)

热门文章

  1. Python 支付宝支付代码
  2. Ubuntu Server 分区案例
  3. ASP.NET C# 数字格式化输出
  4. Getting Started with the Table Component
  5. tomcat 6.0环境, 网页超链接,文件下载另存为时,不能识别msi文件类型,另存为只能选htm和所有文件。...
  6. 思科收购网络安全管理厂商Pari Networks
  7. Redis1 晨考题
  8. 数据结构与算法--9.常见时间复杂度及其之间的关系
  9. halcon中面到面的距离_halcon学习笔记——(8)由标定板得到测量平面位姿-阿里云开发者社区...
  10. 解决: 'Cannot call `.is_valid()` as no `data=` keyword argument was ' AssertionError: Cannot call `