热门

最新

红包

立Flag

投票

同城

我的

发布
qq_61263854
华339
4 年前
trueqq_61263854


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

资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
在自己编译器上试了几个样例没问题,在蓝桥杯上提交只能通过第一个样例,不知道哪里错了,求大佬帮助!



#include<iostream>
using namespace std;
int main()
{
string str16;
cin >> str16;
int len16 = str16.length();
long long int10 = 0,p=1;
for (int i = 0; i < len16; i++)
{
int m=0;
if (str16[i] >= 'A'&&str16[i]<='F')
{
m = str16[i] - 'A' + 10;
}
else if(str16[i]>='0'&&str16[i]<='9')
{
m=str16[i]-'0';
}
int10 =int10+ m * p;
p = p * 16;
}
cout << int10;
}

CSDN App 扫码分享
分享
评论
2
打赏
  • 复制链接
  • 举报
下一条:
MySQL中一条语句的执行流程。
立即登录