十进制转十六进制 C++

2023-07-30 10:35:36 浏览数 (1)

题目描述

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

输入描述:

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

输出描述:

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

示例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<10)
		bit=deci '0';
		else
		bit=deci 'A'-10;
		hex.insert(hex.begin(),bit);
		deci/=16;
	}while(deci);
	cout<<hex;
}

0 人点赞