描述
十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 共 16 个符号,分别表示十进制数的 0 至 15。十六进制的计数方法是满 16 进 1,所以十进制数 16 在十六进制中是 10,而十进制的 17 在十六进制中是 11,以此类推,十进制的 30 在十六进制中是 1E。
给出一个非负整数,将它表示成十六进制的形式。
输入描述
输入包含一个非负整数 a,表示要转换的数。0≤a≤2147483647
输出描述
输出这个整数的 16 进制表示。
样例输入 1
30
样例输出 1
1E
提示
数据范围与提示
0≤a≤2147483647
AC代码:
#include <cstring>
#include <iostream>
typedef long long Int;
Int stack[100];//这里原来用了字符数组
Int top = 0;
int main() {
Int n;
std::cin >> n;
if(n==0){//这里一开始没有写,不写只有90分,因为不写0考虑不到
std::cout<<'0';
return 0;
}
for (; n; n /= 16) {
stack[++top] = n % 16;
}
for (Int i = top; i >= 1; i--) {
Int a=stack[i];
if (0 <= a&& a <= 9) {
std::cout<<a;
} else if (a == 10) {
std::cout<<'A';
} else if (a == 11) {
std::cout<<'B';
} else if (a == 12) {
std::cout<<'C';
}else if(a==13){
std::cout<<'D';
}else if(a==14){
std::cout<<'E';
}else if(a==15){
std::cout<<'F';
}
}
std::cout << std::endl;
}