char转十六进制字符串

    const static char mapping[] = "0123456789ABCDEF";
    char buf[4];
    unsigned char low = c & 0x0f;//低4位
    unsigned char hei = (c >> 4) & 0x0f;//高4位
    buf[0]='%';//前缀
    buf[1]=mapping[hei];
    buf[2]=mapping[low];
    buf[3]='\0';