转载自:【C语言】 任意十进制数字转十六进制 - 金舰 - 博客园大概思路:输入任意十进制数字 首先确定位数; 使用整形数组来存储十六进制数; a[0] 表示十六进制数字的位数; 最终效果:https://www.cnblogs.com/tao-zhu-forever/p/9126890.html
【C语言】 任意十进制数字转十六进制
大概思路:
输入任意十进制数字 首先确定位数;
使用整形数组来存储十六进制数; a[0] 表示十六进制数字的位数;

#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 10
int* ahex(int dec){
int n=1;
int m=16;
int *a;
a = (int*)malloc(sizeof(int)*MAXSIZE+1);
while(dec >= m)
{
m = m*16;
n++;
}
//printf("位数:%dn",n);
*a = n;
while(n>0)
{
*(a+n)= dec/(m/16);
dec = dec-*(a+n)*(m/16);
n--;
m = m/16;
}
return a;
}
void print_hex(int *p){
int n = *p;
printf("hex: 0x");
while(n>0)
{
switch(*(p+n)){
case 10:printf("A");break;
case 11:printf("B");break;
case 12:printf("C");break;
case 13:printf("D");break;
case 14:printf("E");break;
case 15:printf("F");break;
default: printf("%d",*(p+n));break;
}
n--;
}
printf("n");
}
int main()
{
int rec=0;
int *p;
while(1){
printf("请输入一个十进制数字:");
scanf("%d",&rec);
p = ahex(rec);
print_hex(p);
}
return 0;
}

最终效果:

最后
以上就是快乐柜子最近收集整理的关于【C语言】 任意十进制数字转十六进制【C语言】 任意十进制数字转十六进制 的全部内容,更多相关【C语言】内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复