第1个回答 推荐于2016-10-19
你的意思是不是把用字符串表示的十六进制转换为用bit表示的16进制?
我是按这个意思写的。
unsigned char fun(char c)/*把用字符表示的十六进制数转换为二进制表示*/
{
if('A' <=c && c <='Z')
return c - 'A' + 10;
if('a' <=c && c <='z')
return c - 'a' + 10;
return c - '0' ;
}
void convert(const char *str, unsigned char *arr)
{
for(unsigned i = 0; str[i] != '\0'; ++i )
if(i%2 == 0){
arr[i/2] = fun(str[i]);
arr[i/2] <<= 4;
}
else
arr[i/2] |= fun(str[i]);
}本回答被提问者和网友采纳