读书人

怎么将字符数组转成16进制数组?

发布时间: 2012-02-11 09:51:34 作者: rapoo

如何将字符数组转成16进制数组??
array= "2e090027ffff0104de "如何将此数组转成
array[0]= "2e "
array[1]= "09 "
array[2]= "00 "
array[3]= "27 "
array[4]= "ff "
array[5]= "ff "
array[6]= "01 "
array[7]= "04 "
array[8]= "de "
即将字符数组中的数取两位存入一个新的数组,这个新的数组大小为9字节。



[解决办法]
unsigned char HextoFlow(char ch)
{
if (ch > = '0 ' && ch <= '9 ') return (ch - '0 ');
if (ch > = 'A ' && ch <= 'F ') return (ch - 'A ' + 0xA);
if (ch > = 'a ' && ch <= 'f ') return (ch - 'a ' + 0xA);
return(0);
}

void HexStringtoFlow(char * src, char * dest, int destlen)
{
char * srcptr;
srcptr = src;
while(destlen--)
{
*dest = HextoFlow(*srcptr++) < < 4;
*dest++ += HextoFlow(*srcptr++);
}
}

读书人网 >C++

热点推荐