两道算法题
1。/* 将一个十六进制字节串转换成 ASCII 码表示的字符串;
unsigned char *pHex -- 十六进制数字节串首地址;
unsigned char *pASSCHex -- 转换后的 ASCII 码表示的字符串的首地址;
int nLen -- 要转换的十六进制数的长度(字节数)。
注: 转换后的结果全部是大写 ASSC 表示的十六进制数;
程序中不对 pHex 和 pASSCHex 的合法性进行检查;
也不对数组越界进行检查。
sample: "\x11\x22\x44\x66"->"11224466" nlen=4
*/
void AC_decl HexToAscii(unsigned char * pHex, unsigned char * pASSCHex, int nLen);
2。
////////////////////////////////////////////////////////////////////////////////////////////
// 功能: 将一个 ASSC 码表示的十六进制字符串转换成十六进制的字节串;
// 输入参数: pAscii -- 转换后的 ASCII 码表示的十六进制字符串的首地址;
// pHex -- 十六进制数字节串首地址;
// nLen -- 要转换的 ASCII 码表示的十六进制字符串的长度(字节数)。
// 输出参数: 空。
// 注: 要求输入的 ASCII 码表示的十六进制数的字符个数必须为偶数,除了是1 - 9 和 A(a) - F(f) 以外没有别的字符;
// 程序中不对 pAscii 和 pHex 的合法性进行检查;
// 也不对数组越界进行检查。
//长度不对,不是0-9 A-F a-f return false; else return true
//例 "11224455"->"\x11\x22\x44\x55" nlen=8
////////////////////////////////////////////////////////////////////////////////////////////
bool AC_decl AsciiToHex(unsigned char * pAscii, unsigned char * pHex, int nLen);