注册 登录
编程论坛 C++教室

请问一下vc十六进制转十进制的函数,谢急,请写清楚些,包括头文件

chencyh 发布于 2005-12-11 18:36, 1218 次点击
请问一下vc十六进制转十进制的函数,谢急,请写清楚些,包括头文件
3 回复
#2
ElfDN2005-12-11 18:41

没现成的,自己写一个

#3
nidehouge2015-04-26 20:12
int convert(int a,char *p)//a为字符串长度,p为需要转换字符串指针
{
 int i,j,sum;

 sum=0;
 for(i=0;i<a;i++)
 {
  if(*(p+i)<='f'&&*(p+i)>='a')
   j=(int)(*(p+i))-87;
  else if(*(p+i)<='F'&&*(p+i)>='A')
   j=(int)(*(p+i))-55;
  else  
   j=(int)(*(p+i))-48;
  sum=sum+pow(16.0,a-i-1)*j;

 }
 return (sum);

}
#4
nidehouge2015-04-26 20:50
int main()
{
    char n[20] = {0};
    int p = 0, i = 0, j = 0;
    scanf("%s",n);
    i = strlen(n)-1;
    while (i >= 0)
    {
          if (n[i] <= '9' && n[i] >= '0') printf("%d",n[i]-'0');
          else if (n[i] <= 'f' && n[i] >= 'a') printf("%d",n[i]-'a'+10);
          else if (n[i] <= 'F' && n[i] >= 'A') printf("%d",n[i]-'A'+10);
          if (p == 0) printf("*1");
          else
              for (j = 0; j < p; j++) printf("*16");
          if (i != 0) printf(" + ");
          else printf("\n");
          i--; p++;
    }
   
    return 0;
}
1