十六进制数组转换成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个月内不可修改。