十六进制转十进制
一、题目要求
- 题目描述
输入一个十六进制数,输出相应的十进制数。
十六进制的基数是0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f。 - 输入格式
输入有若干行,每行表示一个十六进制的数。 - 输出格式
输出每个十六进制数对应的十进制数。 - 输入样例
a1
1a
110 - 输出样例
161
26
272
二、完整代码
#include <iostream>
#include <math.h>
#include <sstream>
int main()
{
std::string a;
while (std::cin >> a)
{
std::istringstream iss(a);
int b;
iss >> std::hex >> b;
std::cout << b << std::endl;
}
}
代码解析
这里主要用到了: #include <sstream>
#include <sstream>是字符串流
可以简单理解为<sstream>
是输入字符串的std::istringstream iss(a);
创建了一个名为 iss 的 std::istringstream 对象,并将 a 初始化为其输入源。iss >> std::hex >> b;
把iss里的a由字符串类型转换成16进制的整数类型。- 直接打印。
默认打印会以10进制的形式打印,即编译器会自动将16进制转换成十进制,然后打印出来。 - 关键点
我们需要做的就是将输入的“字符串”类型转换为“十六进制的整数”类型