一个16进制的有关问题

一个16进制的问题
已有

C/C++ code


char a[]="f"
char b[]="b"

现在想得到一个 c=0xfb




请问各位大神该如何实现 谢谢

------解决方案--------------------
可以这样
C/C++ code
#include<stdio.h>
#include<stdlib.h>

int main(){

    char *p = "0xff";
    int n;
    sscanf(p,"%x",&n);
    printf("%x\n",n);

}

------解决方案--------------------
C/C++ code
char e[]="fffafbfc";
unsigned char Buffer1,Buffer2,Buffer3,Buffer4;
sscanf(e,"%2x%2x%2x%2x",&Buffer1,&Buffer2,&Buffer3,&Buffer4);

------解决方案--------------------
探讨
char a[]="f";
char b[]="b";
unsigned int v1,v2;
unsigned int c;
//现在想得到一个 c=0xfb
sscanf(a,"%x",&amp;v1);
sscanf(b,"%x",&amp;v2);
c=(v1<<4)|v2;

------解决方案--------------------
char a[]="f";
char b[]="b";
int c ;

c = atoi(a)*16 + atoi(b);

printf("c = %x",c);
------解决方案--------------------
C/C++ code

#include<stdio.h>
#include<stdlib.h>
void get(unsigned char *src, unsigned char Buffer[])
{
    unsigned char uch;
    while(*src && *(src + 1))
    {
        if ('A' <= *src && *src <= 'F' || 'a' <= *src && *src <= 'f')
            uch = ((*src++ & 0x0f) + 9)<<4;
        else if('0' <= *src && *src <= '9')
            uch = (*src++ & 0x0f)<<4;
        if ('A' <= *src && *src <= 'F' || 'a' <= *src && *src <= 'f')
            uch |= ((*src++ & 0x0f) + 9);
        else if('0' <= *src && *src <= '9')
            uch |= (*src++ & 0x0f);
        *Buffer++ = uch;
    }
}

int main()
{
    #define N 8
    unsigned char Buffer[N];
    int i;
    
    get("fffafbfcf33a5678", Buffer);
    for (i = 0; i < N; i++)
        printf("%x\n", Buffer[i]);
        
    system("pause");
    return 0;
}