怎样用C语言编写一个程序将输入的十进制数转化成16进制?
1个回答
展开全部
你可以设置一个字符串数组
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");
}
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");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询