列表

详情


CPP55. 十进制整数转十六进制字符串

描述

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

输入描述

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

输出描述

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

示例1

输入:

162

输出:

A2

示例2

输入:

50

输出:

32

示例3

输入:

501

输出:

1F5

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 2ms, 内存消耗: 396KB, 提交时间: 2021-12-13

#include <iostream>
#include <string>
using namespace std;

string toHexString(int n);

int main() {

    int n;
    cin >> n;

    string hexStr = toHexString(n);
    cout << hexStr << endl;

    return 0;
}

string toHexString(int n) {
    // write your code here......
    string res;
    string result;
    char  a;
    if(n==0)
    {res='0';}
    else
    {
    
        while (n!=0)
        {
            if(n%16>=10)
            {char  a;
             a=n%16-10+'A';
            res.push_back(a);
            }
            else
            {a=n%16+'0';
            res.push_back(a);
            }
            n=n/16;
        }
       
    }
    int len=res.size();
    for(int i=len-1;i>=0;i--)
    {result=result+res[i];}
    
     return result;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 432KB, 提交时间: 2021-11-22

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

string toHexString(int n);

int main() {

    int n;
    cin >> n;

    string hexStr = toHexString(n);
    cout << hexStr << endl;

    return 0;
}

string toHexString(int n) {
    string sRes = "";
    while(n > 0)
    {       
        int m = n % 16;
        if (m >=0 && m <= 9)
        {
            sRes += m + '0';
        }
        else{
            sRes += m - 10 + 'A';
        }
         n /= 16;
    }
    reverse(sRes.begin(), sRes.end());
    // write your code here......
    return sRes;
}

C++ 解法, 执行用时: 3ms, 内存消耗: 304KB, 提交时间: 2022-05-30

#include <iostream>
#include <string>
#include<algorithm>
using namespace std;
 
string toHexString(int n);
 
int main() {
 
    int n;
    cin >> n;
 
    string hexStr = toHexString(n);
    cout << hexStr << endl;
 
    return 0;
}
 
string toHexString(int n) {
    // write your code here......
    string result="";
    while(n>0)
    {
        int m=n%16;
        if(m>=0 && m<=9) result+=m+'0';
        else result+=m-10+'A';
        n/=16;
    }
    reverse(result.begin(),result.end());
    return result;
}

C++ 解法, 执行用时: 3ms, 内存消耗: 304KB, 提交时间: 2021-10-21

#include <iostream>
#include <string>
#include <stdlib.h>
#include <sstream>
#include <iomanip>
#include <algorithm>    // std::reverse
using namespace std;

string toHexString(int n);

int main() {

	int n;
	cin >> n;

	string hexStr = toHexString(n);
	cout << hexStr << endl;

	return 0;
}

string toHexString(int n) {
	// write your code here......

    //fun1
    //string str;
    //char ch[32];
    //sprintf(ch,"%X",n);
    //str = ch;
    //return str;
    
    //fun2
    //stringstream ss;
    //ss<<setiosflags(ios::uppercase)<<hex<<n;
    //string str;
    //ss>>str;
    
    //fun3
   string str="";
   while(n!=0)
   {
       int temp = n%16;
       if(temp>=0 && temp<=9)
       {
           str+=temp+'0';
       }
       else 
       {
           str+=temp -10 +'A';
       }
       n/=16;
   }
   
   reverse(str.begin(),str.end());
    return str;
    
}

C 解法, 执行用时: 3ms, 内存消耗: 304KB, 提交时间: 2021-10-15

#include <stdio.h>
int main()
{
    int i;
    while(scanf("%d",&i)!=EOF)
    {
        printf("%X\n",i);
    }
    return 0;
}

上一题