十六进制数组转换成ASCII码

简介: 十六进制数组转换成ASCII码
#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


目录
相关文章
|
4月前
字符与数字的相互转换
字符与数字的相互转换
34 0
|
4月前
|
Python
ASCII码与字符相互转换:
ASCII码与字符相互转换:
|
5月前
|
C#
C# | [字节数组]与[16进制字符串]互相转换 - CodePlus系列
十六进制(简写为hex或下标16)是一种基数为16的计数系统,是一种逢16进1的进位制。通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:A~F表示10~15,这些称作十六进制数字。 我们在做开发的过程中,经常需要将收发数据打印出来检查。如何简单高效的一行代码转换字节数组到字符串呢?我们来一起看看吧!
57 0
C# | [字节数组]与[16进制字符串]互相转换 - CodePlus系列
|
11月前
16进制和字符串互转 #65
16进制和字符串互转 #65
83 1
|
11月前
|
Java
常用字节转换(字符串转16进制,16进制转字符串)
常用字节转换(字符串转16进制,16进制转字符串)
十六进制字符串
十六进制字符串
87 0
二、八、十、十六进制互相转换大全
二进制(0~1)、八进制(0~7)、十进制(0~9)、十六进制(0~9、10即A、11即B、12即C、13即D、14即E、15即F)
422 0
一个将十六进制转换为二进制字符数组的函数
十六进制数转换为二进制数组的函数HexToBinStr 函数实现: void HexToBinStr(int hex, char *bin_str, int str_size) { int i; for (i = 0; i !=str_size; ++i) { ...
1858 0
|
C#
C# 判断字符串是否符合十六进制,八进制,二进制和十进制整数格式的正则表达式
     /// /// 判断是否十六进制格式字符串 /// /// /// public bool IsHexadecimal(string str) { const...
1170 0