找回密码
 注册会员
查看: 1106|回复: 0

用C语言编程如何将十进制转换成十六进制?

[复制链接]
发表于 2010-9-28 13:24:50 | 显示全部楼层 |阅读模式
<p>用C语言编程如何将十进制转换成十六进制?</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:5 -</p>
<p>解决时间:2010-9-28 13:21</p>
<p>提问者: lschance - 五级</p>
<p>最佳答案</p>
<p>给你个各种进制转换的通用函数,十进制转十六进制,d1=10,d2=16</p>
<p>#include <stdio.h></p>
<p>void conversion(char s[],char s2[],int d1,int d2)</p>
<p>{</p>
<p>// s[]:转换前的数字</p>
<p>// s2[]:转换后的数字</p>
<p>// d1:原进制数</p>
<p>// d2:需要转换到的进制数</p>
<p>// 高于9 的位数用大写\'A\'~\'Z\'表示</p>
<p>int i,j,t,num=0;</p>
<p>char c;</p>
<p>for (i=0;s!=\'\0\';i++)</p>
<p>{</p>
<p>if(s<=\'9\'&&s>=\'0\')</p>
<p>t=s-\'0\';</p>
<p>else</p>
<p>t=s-\'A\'+10;</p>
<p>num=num*d1+t;</p>
<p>}</p>
<p>i=0;</p>
<p>while(1)</p>
<p>{</p>
<p>t=num%d2;</p>
<p>if (t<=9)</p>
<p>s2=t+\'0\';</p>
<p>else</p>
<p>s2=t+\'A\'-10;</p>
<p>num/=d2;</p>
<p>if (num==0)</p>
<p>break;</p>
<p>i++;</p>
<p>}</p>
<p>for(j=0;j<=i/2;j++)</p>
<p>{</p>
<p>c = s2[j];</p>
<p>s2[j] = s2[i-j];</p>
<p>s2[i-j] = c;</p>
<p>}</p>
<p>s2[i+1]=\'\0\';</p>
<p>}</p>
<p>int main()</p>
<p>{</p>
<p>char a[100],b[100]={0},c[100]={0};</p>
<p>int n,m;</p>
<p>while(1)</p>
<p>{</p>
<p>scanf("%d%d%*c",&n,&m);</p>
<p>gets(a);</p>
<p>conversion(a,b,n,m);</p>
<p>printf("%s\n",b);//想转成int型,可用int k=atoi(b);</p>
<p>}</p>
<p>return 0;</p>
<p>}</p>
<p>1</p>
<p>回答者:</p>
<p>hi_xjy - 七级   2010-9-27 22:18</p>
<p>我来评论>></p>
<p>提问者对于答案的评价:</p>
<p>只有你写了程序出来,虽然有点问题,但还是谢谢你!</p>
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|文字版|手机版|小黑屋|襄阳城

GMT+8, 2025-5-11 04:42

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表