主要思路:运用一个数组,通过数字每次取任意进制模,存在数组中, 再通过倒取数组中的数值,来实现进制转换,如果遇到十六进制,利用ASCII码值 数字字符和大写字母 相差55的特性来解决
int main()
{
int a[50];//把取模的值放到数组中1
int i = 0;
int num,k;
printf("选择你要转换的进制\n");
scanf("%d", &k);
printf("请输入一个数字\n");
scanf("%d", &num);//输入一个数字
int prenum = num;
if (num > 0)
{
while (num != 0)
{
a[i] = num % k;
num = num / k;
i++;
}
printf("%d的%d进制为", prenum, k);
for (i -= 1; i >= 0; i--)//倒序输出数组中的数字
{
if (a[i] >= 0 && a[i] <= 9)//如果是正常数字 则输出
printf("%d", a[i]);
else//如果是大于9的则用字母ABCDEF来代替
{
printf("%c", a[i] + 55);
}
}
}
else
{
printf("%d的%d进制为0", prenum, k);
}
return 0;
}
int main()
{
int i = 0;
int m, k;
int a[20]