试题 基础练习 十六进制转十进制 资源限制时间限制: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;}