前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >十进制转十六进制 C++

十进制转十六进制 C++

作者头像
叶茂林
发布2023-07-30 10:35:36
4020
发布2023-07-30 10:35:36
举报
文章被收录于专栏:叶子的开发者社区

题目描述

编写一个函数,传入一个十进制的正整数,将十进制整数转换为十六进制的字符串并返回。(十六进制字符串中的字母全部大写)

输入描述:

键盘输入一个十进制的正整数

输出描述:

输出该十进制整数转换后的十六进制字符串

示例1

输入:

代码语言:javascript
复制
162

复制输出:

代码语言:javascript
复制
A2

复制

示例2

输入:

代码语言:javascript
复制
50

复制输出:

代码语言:javascript
复制
32

复制

示例3

输入:

代码语言:javascript
复制
501

复制输出:

代码语言:javascript
复制
1F5

思路分析

思路很简单,就是按照十进制转十六进制的算法来算,除以16取余,关键是灵活调用string类的各种函数来完成插入的工作。

具体来说:

先建立一个空的string字符串hex用来存储我们变换后的十六进制数,之后我们对十进制数进行除以16取余的操作,这里需要一个循环,先判断和16取余后的数是否小于10,如果小于10,说明是数字,加上‘0’就可以变成相应的数字字符,如果不是小于10,说明要变成字母,加上‘A'就可以变成相应的字母了,然后将该字符用insert函数插入字符串hex的开头,然后将十进制数除以16后继续循环,直到十进制数为0终止循环。

AC代码

代码语言:javascript
复制
#include<iostream>
#include<string>
using namespace std;
int main(){
	string hex;
	char bit;
	int deci;
	cin>>deci;
	do{
		if(deci%16<10)
		bit=deci%16+'0';
		else
		bit=deci%16+'A'-10;
		hex.insert(hex.begin(),bit);
		deci/=16;
	}while(deci);
	cout<<hex;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 思路分析
  • AC代码
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档