你可以设置一个字符串数组
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");
}
取消
评论