蓝桥杯基础训练-十六进制转十进制-c语言

资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535

#include<stdio.h>
#include<string.h>
#include<math.h>
int tran();
int tran(char c){
    
    
	    if(c=='0') return 0;
		if(c=='1') return 1;
		if(c=='2') return 2;
		if(c=='3') return 3;
		if(c=='4') return 4;
		if(c=='5') return 5;
		if(c=='6') return 6;
		if(c=='7') return 7;
		if(c=='8') return 8;
		if(c=='9') return 9;
		if(c=='A') return 10;
		if(c=='B') return 11;
		if(c=='C') return 12;
		if(c=='D') return 13;
		if(c=='E') return 14;
		if(c=='F') return 15;
	}
int main(){
    
    
	char h[100];//A[0]
	scanf("%s",&h);
	int l=strlen(h);
	int i;
	int s=l; 
	long  long int d=0;
	for(i=0;i<s;i++){
    
    
	d=d+tran(h[i])*pow(16,l-1);
	l--;		
	}
	printf("%lld\n",d);
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43959743/article/details/112928789