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

思路:直接按位数进行暴力转换(简单粗暴)

注意:

1.最后结果要用long long,不然装不下

2.string转long long的时候记得倒序转换

3.s[i]为字符,s[i]-'0’才是对应的整数值。

话不多说,直接上AC代码

#include
using namespace std;
int main()
{
	string s;
	cin>>s; 
	long long sum=0,num=1;
	
	for(int i=s.length()-1;i>=0;i--) {
		if(s[i]=='A'||s[i]=='B'||s[i]=='C'||s[i]=='D'||s[i]=='E'||s[i]=='F') {
			sum += num * (s[i] - 'A' + 10);
			num *= 16;
		}
		else {
			sum += num * (s[i] - '0');
			num *= 16;
		}
	}
	cout<

你可能感兴趣的:(蓝桥杯,c++)