十六进制转十进制

题目

问题描述

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

样例输入

FFFF

样例输出

65535

 

注意最后结果用long long保存,因为FFFFFFFF=1111 1111 1111 1111 1111 1111 1111 1111

代码

#include <iostream>
using namespace std;
int main()
{
	long long n,i,k,j,l;
	string s;
	cin>>s;
	k=0;
	l=s.length()-1;
	for(i=0;i<s.length();i++)
	{
		if(s[i]<='9')
		{
			j=s[i]-'0';
		}
		else
		{
			j=s[i]-55;
		}
		for(int b=1;b<=l;b++)
		{
			j*=16;
		}
		k+=j;
		l--;
	}
	cout<<k<<endl;
	return 0;
}

 

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-20 20:30
工作没了,落户没了,什么都没了
梦想是成为七海千秋:是因为什么原因呀,如果是因为导师恶意卡你就和他爆了
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
05-21 15:47
门头沟学院 Java
浪漫主义的虹夏:项目有亮点吗,第一个不是纯玩具项目吗,项目亮点里类似ThreadLocal,Redis储存说难听点是花几十分钟绝大部分人都能学会,第二个轮子项目也没体现出设计和技术,想实习先沉淀,好高骛远的自嗨只会害了自己
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务