十六进制数组转换成ASCII码

举报
心跳包 发表于 2021/11/12 23:22:34 2021/11/12
【摘要】 #include <stdio.h>#include <stdlib.h>#include <string.h>#include <strings.h> #define HEX2ASC(a) ((((a)&0xF)>9)?((a)&0xF)-10+'a':((a)...

      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      #include <strings.h>
      #define HEX2ASC(a) ((((a)&0xF)>9)?((a)&0xF)-10+'a':((a)&0xF)+'0')
      static void char_array_2_ascii(char *src,size_t src_len,char *str,size_t str_size){
     	size_t i;
     	if(str_size < 2*src_len+1)return;
     	for(i=0;i<src_len;i++){
      		*(str+2*i)=HEX2ASC(*(src+i)>>4);
      		*(str+2*i+1)=HEX2ASC(*(src+i)&0xF);
      	}
      	*(str+2*i)='\0';
      }
      int main()
      {
     	 unsigned char buf[]={0x32,0x33,0x34,0x45};
     	 char string[50];
     	 char_array_2_ascii((char *)buf,sizeof(buf),string,50);
     	 printf("%s\r\n",string);
      }
  
 

打印:32333445

文章来源: xintiaobao.blog.csdn.net,作者:心跳包,版权归原作者所有,如需转载,请联系作者。

原文链接:xintiaobao.blog.csdn.net/article/details/102679474

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。