#include<iostream>
using namespace std;
int main() {
long long n,count=0;
cin>>n;
char a[18]={};
char c[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for (int i=0;;i++){
a[i]=c[n%16];
n=n/16;
count++;
if (n==0) break;
}
for (int i=count-1;i>=0;i--){
cout<<a[i];
}
return 0;
}
注意:要注意整数类型的范围问题,不然容易出现数据溢出,导致结果不对,错误代码如下
//错误代码【变量定义的数据类型不匹配】
#include<iostream>
using namespace std;
int main() {
int n,count=0;//数据类型为整数,长度不够
cin>>n;
char a[18]={};
char c[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for (int i=0;;i++){
a[i]=c[n%16];
n=n/16;
count++;
if (n==0) break;
}
for (int i=count-1;i>=0;i--){
cout<<a[i];
}
return 0;
}
出现以下结果:
原因为数据超出int类型范围,最大的int类型整数转换为16进制就是7FFFFFFF