问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
#include <iostream>
#include <cstdio>
#include <math.h>
using namespace std;
int main() {
string s;
cin >> s;
long long int re = 0;
int n = s.size();
for(int i = 0; i < n; i++) {
int p;
switch(s[i]) {
case '0':p=0;break;
case '1':p=1;break;
case '2':p=2;break;
case '3':p=3;break;
case '4':p=4;break;
case '5':p=5;break;
case '6':p=6;break;
case '7':p=7;break;
case '8':p=8;break;
case '9':p=9;break;
case 'A':p=10;break;
case 'B':p=11;break;
case 'C':p=12;break;
case 'D':p=13;break;
case 'E':p=14;break;
case 'F':p=15;break;
default:break;
}
re = re + p * pow(16, n-1-i);
}
cout << re << endl;
return 0;
}
本文介绍了一个简单的C++程序,该程序能够接收用户输入的十六进制数,并将其转换为等价的十进制数值进行输出。通过解析每个十六进制字符对应的十进制值并累加得到最终结果。

3382

被折叠的 条评论
为什么被折叠?



