蓝桥杯试题 基础练习 十六进制转十进制(C语言)

问题描述

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

样例输入

FFFF

样例输出

65535

#include<bits/stdc++.h>
using namespace std;

int main()
{
	char a[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
	char b[10];
	int k=0,i;
	int n;
	
	scanf("%d",&n);
	if(n==0)
	printf("0");
	else
	{
		while(n)
		{
			b[k++]=a[n%16];
			n=n/16;
		}
		for(i=k-1;i>=0;i--)
		printf("%c",b[i]);
	}
}

十进制转十六进制直接打表会快很多,对应的再存起来就可。

猜你喜欢

转载自blog.csdn.net/with_wine/article/details/114974727