怎样用C语言编写一个程序将输入的十进制数转化成16进制?

 我来答
宝马王Q
2020-03-10 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:807万
展开全部
你可以设置一个字符串数组
char
HEX[16]
=
{'0',
'1',
'2',
3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F'}
以后你得出的数字,比如余数y是10,那么HEX[y]打印出来就是A了
例子(现写的)
int
now;
int
res[100];//答案
int
c
=
0;//位数
输入到now;
while
(now
>
0)
{
res[c]
=
now
%
16;
now
=
now
/
16;
c++;
}
输出是:
for
(i
=
0;
i
<
c;
i++)
{
输出
HEX[res[i]];
}
算法的精髓都给你啦,好好理解吧
/**********************************************
****************
补充
*****************
**********************************************/
改你的代码
#include
"stdio.h"
void
main()
{
char
HEX[16]
=
{'0',
'1',
'2',
3',
'4',
'5',
'6',
'7',
'8',
'9',
'A',
'B',
'C',
'D',
'E',
'F'};
//<----------------这里加了
int
num;
printf("请输入一个十进制整数:");
scanf("%d",&num);
int
a[10];
//<----------------这里改了
int
i=0;
int
yushu;
while(num>0)
{
yushu=num%16;
a[i]=yushu;
num=num/16;
i++;/*关键的就在这里,这后面书上写的要用SWITCH,但是我用不好,请各位大虾指教*/
}
printf("转化为十六进制的数为:");
for(;i>=0;i--)//倒序输出
{
printf("%c",HEX[a[i]]);
//<----------------这里改了
}
printf("\n");
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式