读书人

字符 跟 十六进制ASCII码转换

发布时间: 2013-11-03 15:39:14 作者: rapoo

字符 和 十六进制ASCII码转换
怎么样把字符 转换成十六进制ASCII码
怎么样把长串数字的每个数字分别转换成十六进制ASCII码
[解决办法]
关于第一个问题


/*----------------------------------------------------------------
【函数介绍】: 将ASCII码转化成十六进制表示
【入口参数】: buf ascii码字符串
len 字符串buf的长度
【返回 值】: 返回对应的十六进制的值
【出口参数】: (无)
-----------------------------------------------------------------*/
char* CTCPClient_CE::ascii2hex(char* chs,int len)
{
//用于接收到的串转换成要用的十六进制串返回主窗口调用
char hex[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8','9', 'A', 'B', 'C', 'D', 'E', 'F'};

char *ascii = (char*)calloc ( len * 3 + 1, sizeof(char) );// calloc ascii

int i = 0;
while( i < len )
{
int b= chs[i] & 0x000000ff;
ascii[i*2] = hex[b/16] ;
ascii[i*2+1] = hex[b%16] ;
++i;
}
return ascii; // ascii 返回之前未释放
}


第二个问题 我理解的是 比如是int型的数字转化成十六进制?

先使用sprintf把int转化为ASCII码,然后再通过上面的函数转化为16进制的ASC码表示

读书人网 >C++

热点推荐