将十六进制数转换成十进制数用哪个函数?

解决方案 »

  1.   

    char* pChar = "ff0000";
    int nValue;
    sscanf(pChar,"%x",&nValue);
      

  2.   

    小弟以前由于也要完成16转10工作,写了一个转换函数(需MFC),特送上,以作参考//16进制转10进制,sHex是储存16进制数字的比如65A,FA21,123
    UINT64 HexToInt(CString sHex)
    {
    char cSingle=sHex[0];
    UINT64 iDec=HexSymbolToInt(cSingle);
    for(int i=1;i<=sHex.GetLength()-1;i++)
    {
    iDec*=16;
    cSingle=sHex[i];
    iDec+=HexSymbolToInt(cSingle);
             }
    return iDec;
    }int HexSymbolToInt(char cHexSymbol)
    {
    switch(cHexSymbol)
    {
    case 'a':return 10;break;
    case 'A':return 10;break;
    case 'b':return 11;break;
    case 'B':return 11;break;
    case 'c':return 12;break;
    case 'C':return 12;break;
    case 'd':return 13;break;
    case 'D':return 13;break;
    case 'e':return 14;break;
    case 'E':return 14;break;
    case 'f':return 15;break;
    case 'F':return 15;break;
    default: 
    return atoi(&cHexSymbol);
    }
    }
      

  3.   

    char  tokenstring[] = “15 12 14...”;
    char  s[81];
    char  c;
    int   i;
    float fp;/* Input various data from tokenstring: */
    sscanf( tokenstring, “%s”, s );
    sscanf( tokenstring, “%c”, &c );
    sscanf( tokenstring, “%d”, &i );
    sscanf( tokenstring, “%f”, &fp );
      

  4.   

    简单的:
    char*p,* c16[100];
    int i10,i16=0x123456;_itoa(c16,i16,16);
    i10=strtol(c16,&p,16);
      

  5.   

    char a[MAX];
    sprintf(a, "%d",mHexNumber);
      

  6.   

    happyparrot(快乐鹦鹉)的OK,我以前也是自己写函数的方法但是偶然的机会使用sscanf绝对好用