#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’了转换十六进制就没有错误,否则出错,求前辈指导,谢谢!! |
|