如何使用C++ 将HEX 转化成ascii码

如题 求高人解答

实现方法:加结束符,去空格,再用atof转换;
参考例子如下:
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
float hex2asc(unsigned char* datas, int n)
{
float val;
char* str = (char*)malloc((n + 1) * sizeof(char));
memcpy(str, datas, n);
str[n] = '\0';
val = (float)atof(str);
free(str);
return val;
}
int main(int argc, char* argv[])
{
unsigned char datas[] = {0x20, 0x20, 0x20, 0x33, 0x35, 0x30, 0x2e, 0x30, 0x20, 0x20, 0x20};
printf("%f\n", hex2asc(datas, 11));
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-18
用整型表示,输出就是10进制。
.....
using namespace std;
void main ()
{
char str[3]="65"; // HEX
int a;
sscanf(str,"%x",&a); // HEX to int
printf("%x %d\n",a,a); // printf or cout
}本回答被提问者采纳
相似回答