题目
题目描述
请从键盘读入一个非负整数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 <iostream>
using namespace std;
long long n, x;
string s;
char c;
int main(){
cin >> n;
while(n != 0){
x = n % 16;
if(x < 10){
c = x + '0';
}else{
c = x + 'A' - 10;
}
s = c + s;
n = n / 16;
}
if(s == ""){
cout << 0;
}else{
cout << s;
}
}
方法二
#include <iostream>
using namespace std;
long long n, x;
string s;
string t = "0123456789ABCDEF";
int main(){
cin >> n;
while(n != 0){
x = n % 16;
s = t[x] + s;
n = n / 16;
}
if(s == ""){
cout << 0;
}else{
cout << s;
}
}