1256: 【入门】正整数n转换为16进制(1289)

内存限制:16 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:10 解决:6

题目描述

请从键盘读入一个非负整数n(n是一个不超过18位的正整数),将n转换为16进制!

注意:16进制即逢16进1,每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个大小不同的数,即逢16进1,其中用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。

如:60的十六进制为3C。(字母请用大写)

输入

一个不超过18位的非负整数n

输出

该数的十六进制值

样例输入 复制

100000000000

样例输出 复制

174876E800

提示

#include<bits/stdc++.h>
using namespace std;
long long n,x;
string s; 
char c;
int main(){
    cin>>n;
    while(n!=0){
    	x=n%16;
    	//cout<<x<<endl;
    	//将x转换为字符逆序存入字符串s 
		//x:0~9 -> '0'~'9'
		//x:10-15 -> 'A'~'F' 
    	if(x<10){
    		c=x+'0';
		}else{
			c=x-10+'A';
		}
		s=c+s;
		n=n/16;
	}
	if(s==""){
		cout<<0;
	}else{
		cout<<s;
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
long long n,x;
/*
n是一个不超过18位的正整数 
*/
string s; 
string t="0123456789ABCDEF";
int main(){
    cin>>n;
    while(n!=0){
    	x=n%16;
    	//cout<<x<<endl;
    	//将x转换为字符逆序存入字符串s 
		//x:0~9 -> '0'~'9'
		//x:10-15 -> 'A'~'F' 
        s=t[x]+s;
		n=n/16;
	}
	if(s==""){
		cout<<0;
	}else{
		cout<<s;
	}    
	return 0;
}