1- Description
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
输入描述:
输入一个十六进制的数值字符串。
输出描述:
输出该数值的十进制字符串。示例1:
输入:
0xA
输出:
10
2- Solution
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main(){
string strinput;
while(cin>>strinput){
int decoutput = 0;
for(int i = strinput.length() - 1; i >= 2; --i){//从后往前进位
switch(strinput[i]){
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':decoutput += (strinput[i] - 'A' + 10) * pow(16 ,strinput.length() - 1 - i);
break;
default:
decoutput += (strinput[i] - '0') * pow(16 ,strinput.length() - 1 - i);
break;
}
}
cout << decoutput << endl;
}
return 0;
}
- 如果只考虑输出的话,下面这种方法显得更加巧妙
关于:std::hex, std::dec, std::oct
#include <iostream>
using namespace std;
int main(){
int a;
while(cin>>hex>>a){
cout<<a<<endl;
}
}
欢迎关注公众号:CodeLab