16进制和ASCII码的转换
帮忙写个16进制和ASCII码相互转换的程序,函数声明如下
int HexToAscii(char *dest, const char *src, size_t length);
描述:该函数将16进制字符串转换成Ascii码字符串,dest为目标字符串,src为源字符串,length为需要转换的字符串的长度,返回值为转换成功后目标串的长度。
int AsciiToHex(char *dest, const char *src, size_t length);
描述:该函数将Ascii字符串转换成16进制字符串,dest为目标字符串,src为源字符串,length为需要转换的字符串的长度,返回值为转换成功后目标串的长度。
int HexToAscii(char *dest, const char *src, size_t length);
描述:该函数将16进制字符串转换成Ascii码字符串,dest为目标字符串,src为源字符串,length为需要转换的字符串的长度,返回值为转换成功后目标串的长度。
int AsciiToHex(char *dest, const char *src, size_t length);
描述:该函数将Ascii字符串转换成16进制字符串,dest为目标字符串,src为源字符串,length为需要转换的字符串的长度,返回值为转换成功后目标串的长度。
作者: dingxiaotao 发布时间: 2011-05-11
C/C++ code
void HexToAscii(char *t, const char *s, int l) { int i; unsigned char c; if( t == NULL || s == NULL ) return; for( i = 0; i < l; i++ ) { c = (s[i] >> 4) & 0x0F; t[2*i] = (c <= 0x9) ? c + 0x30 : c + 0x37; c = s[i] & 0x0F; t[2*i + 1] = (c <= 0x9) ? c + 0x30 : c + 0x37; } t[2*i] = 0; }
作者: justkk 发布时间: 2011-05-11