解决方案 »

  1.   

    参考下面:
    #include <stdio.h>
    char hexstr[]="19 02 00 01 00 01 06 01 50 70 7D 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 01 78 CA 00 00 14 86  ";
    unsigned char hexval[256];
    char *p;
    int i,v,n,r;
    unsigned short int usi;
    unsigned int ui;
    int main() {
        i=0;
        p=(char *)hexstr;
        while (1) {
            r=sscanf(p,"%2x%n",&v,&n);
            if (1==r) {
                hexval[i]=(unsigned char)v;
                i++;
                if (i>=256) break;
                p+=n;
            } else if (0==r) {
                p++;
            } else break;
        }
        n=i;
        for (i=0;i<n;i++) printf("%02X ",hexval[i]);
        printf("\n");    //比如hexval[0..1]组成一个unsigned short int
        usi=*(unsigned short int *)&hexval[0];
        printf("usi=0x%04hX=%hd\n",usi,usi);    //比如hexval[2..5]组成一个unsigned int
        ui=*(unsigned int *)&hexval[2];
        printf("ui=0x%08X=%d\n",ui,ui);    //...    return 0;
    }
    //19 02 00 01 00 01 06 01 50 70 7D 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 01 78 CA 00 00 14 86
    //usi=0x0219=537
    //ui=0x01000100=16777472
    //