1.使用sprintf()函数
#include <stdio.h>
int main()
{
int a = 31;
char hex[10] = {NULL}, Hex[10] = {NULL};
sprintf_s(hex, "%x", a); //十六进制小写
sprintf_s(Hex, "%X", a); //十六进制大写
printf("%s\n", hex);
printf("%s\n", Hex);
return 0;
}
2.逆序取余
#include <stdio.h>
void decimalToHex(int);
int main()
{
int input = 0;
scanf_s("%d",&input);
decimalToHex(input);
return 0;
}
void decimalToHex(int input){
int arr[16] = { 0 };
char charray[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int tem = input;
for(int i=15;i>0;i--)
{
arr[i] = tem % 16;
tem=tem/16;
}
for(int k=0;k<16;k++)
{
printf("%d", arr[k]);
}
printf("\n");
for(int k=0;k<16;k++) //输出十六进制
{
printf("%c",charray[arr[k]]);
}
}
charray[ ]用于生成A,B,C,D,E,F符号代替十进制数据