c中怎样把十进制数转换成十六进制?

ccddd123 2001-12-21 02:55:57
rt
...全文
462 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liloliu 2001-12-21
  • 打赏
  • 举报
回复
先给个没有优化过的:
int a[10];


void f10to16(int i,int n)
{
a[i]=(n%16);
n=(n/16);
if(n>15)
{ f10to16(i+1,n);}
else
{ a[i+1]=n;}
}

void main()
{
int m,i;
for(i=9;i>=0;i--)
{
a[i]=-1;
}

printf("please input a number :");
scanf("%d",&m);

printf("\nthe result is=0x");

f10to16(0,m);

for(i=9;i>=0;i--)
{
if(a[i]>=16||a[i]<=-1)
{
//not do anything
}
else if(a[i]>=0&&a[i]<=9)
{
printf("%d",a[i]);
}
else if(a[i]>=10&&a[i]<=15)
{
printf("%c",('a'+(a[i]-10)));
}
}
printf("\n");
}
yinx 2001-12-21
  • 打赏
  • 举报
回复
然后再根据数字转化成ASCII码,
liloliu 2001-12-21
  • 打赏
  • 举报
回复
n/16的商。
n%16得余数。

33,007

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧