首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >十进制转十六进制 C++

十进制转十六进制 C++

作者头像
叶茂林
发布2023-07-30 10:35:36
发布2023-07-30 10:35:36
9210
举报

题目描述

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

输入描述:

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

输出描述:

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

示例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代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档