例如现在有一个字符串“fe”代表十六进制数0xfe,怎么样才能让int i ;得到最终的结果:i = 254 ;

解决方案 »

  1.   

    char a[3]="fe";
    DWORD val = strtoul(a, NULL, 16);
      

  2.   


    #include <stdlib.h>
    #include <stdio.h>void main( void )
    {
       char   *string, *stopstring;
       double x;
       long   l;
       int    base;
       unsigned long ul;
       string = "3.1415926This stopped it";
       x = strtod( string, &stopstring );
       printf( "string = %s\n", string );
       printf("   strtod = %f\n", x );
       printf("   Stopped scan at: %s\n\n", stopstring );
       string = "-10110134932This stopped it";
       l = strtol( string, &stopstring, 10 );
       printf( "string = %s", string );
       printf("   strtol = %ld", l );
       printf("   Stopped scan at: %s", stopstring );
       string = "10110134932";
       printf( "string = %s\n", string );
       /* Convert string using base 2, 4, and 8: */
       for( base = 2; base <= 8; base *= 2 )
       {
          /* Convert the string: */
          ul = strtoul( string, &stopstring, base );
          printf( "   strtol = %ld (base %d)\n", ul, base );
          printf( "   Stopped scan at: %s\n", stopstring );
       }
    }
    Outputstring = 3.1415926This stopped it
       strtod = 3.141593
       Stopped scan at: This stopped itstring = -10110134932This stopped it   strtol = -2147483647   Stopped scan at: This stopped itstring = 10110134932
       strtol = 45 (base 2)
       Stopped scan at: 34932
       strtol = 4423 (base 4)
       Stopped scan at: 4932
       strtol = 2134108 (base 8)
       Stopped scan at: 932