/*问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535*/
#include<stdio.h>
#include<string.h>
int main(void)
{
int i=0;
long long sum=0;
long long product=1;
char ch[8]={0};
//int arr[8];
gets(ch);
//char i=1;
//int num=0;
//printf("%d",i);
int len=strlen(ch);
//printf("%d",len);
for (i=len-1;i>=0;i--)
{
int num=ch[i]-'0';
//printf("num=%d",num);
if (num<10)
{
sum=sum+num*product;
//printf("sum=%d\n",sum);
}
else
{
int tmp;
tmp=(int)(ch[i]-'A'+10);
//printf("tmp=%d\n",tmp);
sum=sum+tmp*product;
}
product=product*16;
}
printf("%lld",sum);
return 0;
}
蓝桥杯基础练习 十六机制转十进制
最新推荐文章于 2023-02-07 17:05:56 发布