蓝桥杯-每日刷题-010

十六进制转十进制

一、题目要求

  • 题目描述
    输入一个十六进制数,输出相应的十进制数。
    十六进制的基数是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进制转换成十进制,然后打印出来。
  • 关键点
    我们需要做的就是将输入的“字符串”类型转换为“十六进制的整数”类型
  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值