C语言一个16位数转化成一个unsigned char型的数组

2025-05-21 20:26:38
推荐回答(1个)
回答(1):

读入16位数字符串,先转化为10进制整数,再转化为字符串。代码如下:

#include
#include
#include

int main()
{
    char a[128];
    char b[1024];
     int n;
     int t;
     int i;
     while(gets(a)){
         n = strlen(a);
         t = 0;
         int e = 0;
         for(i=2;i             if(a[i]>='a'&&a[i]<='f'){
                 t=t*16+a[i]-'a'+10;
             }
             else if(a[i]>='A'&&a[i]<='F'){
                 t=t*16+a[i]-'A'+10;
             }
             else if(a[i]>='0'&&a[i]<='9'){
                 t=t*16+a[i]-'0';
             }
             else{
                 printf("error\n");
                 e=1;
                 break;
             }
         }
         if(e!=1){
             itoa(t,b,10);
             printf("%s\n",b);
         }
     }
    
    return 0;
}