如何用C语言实现十六进制转换为十进制

如题所述

#include<stdio.h>

int convert(char *str,int n) { int w=1,i=0,rt=0;

  while ( str[i] ) i++; 

  while ( i>0 ) { 

   i--;

    if ( (str[i]>='0')&&(str[i]<='9') ) rt+=(str[i]-'0')*w;

    else if ( (str[i]>='a')&&(str[i]<='f') ) rt+=(str[i]-'a'+10)*w;

    else if ( (str[i]>='A')&&(str[i]<='F') ) rt+=(str[i]-'A'+10)*w;

    w*=n;

  }

  return rt;

}

void main() { int x; char str[256];

  printf("请输入十六进制数:"); scanf("%s",str);

  x=convert(str,16);

  printf("%sH=%dD\n",str,x);

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-10-18
自动转的,0x就是16进制,不写就是十进制

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网