基础练习 十六进制转十进制

十年热恋 提交于 2020-01-24 18:24:47

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

#include<iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
	int i,j,k;
	char a[9];
	
	gets(a);
	long long n=1;
	long long b=0;
	for(i=strlen(a)-1;i>=0;i--)
	{
		if(a[i]>='0'&&a[i]<='9')
		b+=(a[i]-'0')*n;
		else if(a[i]>='a'&&a[i]<='f')
		b+=(a[i]-'a'+10)*n;
		else if(a[i]>='A'&&a[i]<='F') 
		b+=(a[i]-'A'+10)*n;
		n=n*16;
	}
	cout<<b<<endl;
	return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!