黑马程序员技术交流社区
标题:
求大神分析十进制任意转换(2-16)进制的程序
[打印本页]
作者:
飞翔的猪
时间:
2015-7-25 09:39
标题:
求大神分析十进制任意转换(2-16)进制的程序
#include<stdio.h>
#include<string.h>
int zifuchuan(char s[]);
int main()
{
int num=0;
int R=0;
int RNum[100];
printf("请出入一个十进制整数:\n");
scanf("%d",&num);
printf("请输入转换的进制要求(2-16之间):\n");
scanf("%d",&R);
int i=0,b;
while(num)
{
b=num %R;
switch(b)
{
case 10:
RNum[i++] = 'A';
break;
case 11:
RNum[i++] = 'B';
break;
case 12:
RNum[i++] = 'C';
break;
case 13:
RNum[i++] = 'D';
break;
case 14:
RNum[i++] = 'E';
break;
case 15:
RNum[i++] = 'F';
break;
default:
RNum[i++]= num%R+'0';
break;
}
num=num/R;
}
while(i--)
{
if (RNum[i] < 9) {
printf("%d", RNum[i]);
}else{
printf("%c", RNum[i]);
}
}
return 0;
}
其中 RNum[i++]= num%R+'0'; 为什么要加上‘0’,一直搞不明白,加上‘0’了转换十六进制就没有错误,否则出错,求前辈指导,谢谢!!
作者:
丁铭检
时间:
2015-7-25 10:00
感觉直接把RNum直接改成char型的可能就没那么多的纠结了,至于你的问题我也没看懂。。第一感觉他是将0~9转换成字符型的0~9.可以最后输出的却又是整型的输出,所以感到很纠结。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2