MAC字符转换有关问题

MAC字符转换问题
如题:
char tmp[13]={"abcdef123456"};
char mac[6]={0};

如何转化成
mac[6]={0xab,0xcd,0xef,0x12,0x34,0x56};
------解决思路----------------------
int char_to_hex(char c)
{
  if (c >= '0' && c <= '9') {
    return c - '0';
  } else if (c >= 'a' && c <= 'f') {
    return c - 'a' + 10;
  } else if (c >= 'A' && c <= 'F') {
    return c - 'A' + 10;
  } else {
    printf("invalid input!");
    return -1;
  }
}

for (i = 0; i < 6; i++) {
  mac[i] = (char)(char_to_hex(tmp[2*i]) * 16 + char_to_hex(tmp[2*i+1]));
}