(C语言)十六进制转十进制

问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。

样例输入 FFFF
样例输出 65535

//具体实现代码
#include<stdio.h>
#include<string.h>


int main(){
	int i;
	int m;
	int n=1;
	long long sum=0;
	char str1[9];

	scanf("%s",str1);
	m=strlen(str1);

	for(i=m-1;i>=0;i--){
		if(i<m-1)	n=n*16;
		if(str1[i]>='A')  sum=sum+((double)str1[i]-55)*n;
		else sum=sum+((double)str1[i]-'0')*n;
	}

	printf("%ld",sum);
	return 0;
}

发布了30 篇原创文章 · 获赞 47 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_44040023/article/details/93614267