#include<stdio.h>
int main()
{
char a[40]="0123456789ABCDEF";//用一个数组存储十六进制数
char b[100];//储存输入的十进制数对应的十六进制数
int n;
int cnt;//计数
scanf("%d",&n);//输入要转换的十进制数
if(n==0)
printf("0");
while(n!=0)
{
b[++cnt]=a[n%16];//这里cnt从1开始
n=n/16;
}
for(int i=cnt;i>0;i--)/*上面cnt从1开始所以i>0,不用输出b[0]。逆序输出*/
printf("%c",b[i]);
return 0;
}
https://blog.csdn.net/qq_49742153/article/details/122244568
:https://blog.csdn.net/qq_49742153/article/details/122244568
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int dec_to_hex(int num,char *target_results )
{
char a[40]="0123456789abcdef";//用一个数组存储十六进制数
int cnt;//计数
int zero_cnt;//需要补字符0数量
char results[10]={};
if(num>1024)
{
printf("error The num is too large ,dec_to_hex alloc num 0-1024\n");
return -1;
}
while(num!=0)
{
results[++cnt]=a[num%16];//这里cnt从1开始
num=num/16;
}
zero_cnt=4-cnt;
if(zero_cnt>0)
{
for(int i=0;i<zero_cnt;i++)
{
*target_results='0';
target_results++;
}
for(int i=cnt;i>0;i--)/*上面cnt从1开始所以i>0,不用输出b[0]。逆序输出*/
{
printf("%c",results[i]);
*target_results=results[i];
target_results++;
}
}
else
{
printf("error The num is too large ,dec_to_hex alloc num 0-1024\n");
return -1;
}
return 0;
}
int main()
{
char buf[100]="";
dec_to_hex(120,buf);
printf("buf:%s\n",buf);
return 0;
}