编程论坛
注册
登录
编程论坛
→
C++教室
请问一下vc十六进制转十进制的函数,谢急,请写清楚些,包括头文件
chencyh
发布于 2005-12-11 18:36, 1218 次点击
请问一下vc十六进制转十进制的函数,谢急,请写清楚些,包括头文件
3 回复
#2
ElfDN
2005-12-11 18:41
没现成的,自己写一个
#3
nidehouge
2015-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
nidehouge
2015-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