Convert a hexadecimal string to an integer efficiently in C?

后端 未结 16 2212
暖寄归人
暖寄归人 2020-12-01 09:31

In C, what is the most efficient way to convert a string of hex digits into a binary unsigned int or unsigned long?

For example, if I have

16条回答
  •  执念已碎
    2020-12-01 10:05

    Try this to Convert from Decimal to Hex

        #include
        #include
    
        int main(void)
        {
          int count=0,digit,n,i=0;
          int hex[5];
          clrscr();
          printf("enter a number   ");
          scanf("%d",&n);
    
          if(n<10)
          {
              printf("%d",n);
          }
    
          switch(n)
          {
              case 10:
                  printf("A");
                break;
              case 11:
                  printf("B");
                break;
              case 12:
                  printf("B");
                break;
              case 13:
                  printf("C");
                break;
              case 14:
                  printf("D");
                break;
              case 15:
                  printf("E");
                break;
              case 16:
                  printf("F");
                break;
              default:;
           }
    
           while(n>16)
           {
              digit=n%16;
              hex[i]=digit;
              i++;
              count++;
              n=n/16;
           }
    
           hex[i]=n;
    
           for(i=count;i>=0;i--)
           {
              switch(hex[i])
              {
                 case 10:
                     printf("A");
                   break;
                 case 11:
                     printf("B");
                   break;
                 case 12:
                     printf("C");
                   break;
                 case  13:
                     printf("D");
                   break;
                 case 14:
                     printf("E");
                   break;
                 case 15:
                     printf("F");
                   break;
                 default:
                     printf("%d",hex[i]);
              }
        }
    
        getch();
    
        return 0;
    }
    

提交回复
热议问题