描述
写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。
输入描述:
输入一个十六进制的数值字符串。注意:一个用例会同时有多组输入数据,请参考帖子[https://www.nowcoder.com/discuss/276]处理多组输入的问题。
输出描述:
输出该数值的十进制字符串。不同组的测试用例用\n隔开。
方法一、
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
string s;
while(cin>>s)
{
int bit=0;
int ans =0;
for(int i=s.length()-1;i>1;i--)
{
if(s[i]>='0'&&s[i]<='9')
ans+=(s[i]-'0')*pow(16,bit++);
else if(s[i]>='A'&&s[i]<='F')
ans+=(s[i]-'A'+10)*pow(16,bit++);
}
cout<<ans<<endl;
}
return 0;
}
我自己需要注意的地方
int ans = 0;
int bit = 0;
放入while循环内
方法二、
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
while(getline(cin, str))
{
cout << stoi(str, 0, 16) << endl;
}
return 0;
}
stoi函数
作用:
将 n 进制的字符串转化为十进制
头文件:
#include <string>
用法:
1 stoi(字符串,起始位置,n进制),将 n 进制的字符串转化为十进制
2 示例:
3 stoi(str, 0, 2); //将字符串 str 从 0 位置开始到末尾的 2 进制转换为十进制