完整代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int base16(int x) //自定义一个base16函数;这里的x对应下文的a[j];
{
if (x >= 10 && x <= 15) //x(即a[j])的值在10到15之间,输出以下符号
{
switch (x)
{
case 10:
printf("A");
break;
case 11:
printf("B");
break;
case 12:
printf("C");
break;
case 13:
printf("D");
break;
case 14:
printf("E");
break;
case 15:
printf("F");
break;
}
}
if (x < 10 || x>15)
{
printf("%d", x);
}
return x;
}
int main()
{
int n = 0;
int a[200];
int num = 0, i = 0, tem;
printf("请输入要转为多少进制的数:");
scanf("%d", &n);
printf("输入数字:");
scanf("%d", &num);
do
{
tem = num % n; //进制转换的代码
num /= n;
a[i++] = tem; //这里的i用一次后加1(比如将8转为二进制,那么就有a[0]=0, a[1]=0,a[2]=0 ,a[3]=1,这时就多出一个a[4];
} while (num != 0);
if (n >=10&&n<=16)
{
for (int j = i - 1;j >= 0;j--) //所以在输出的时候,此时i=4,数组下标要减去1,再倒序输出
{
base16(a[j]); //调用上面的base16函数;
}
}
if (n <10)
{
for (int j = i - 1;j >= 0;j--) //如上
{
printf("%d", a[j]);
}
}
return 0;
此代码能实现从10进制到16进制以内的转换,代码比较基础,用的都是比较基础的语法,
主要是作者本人也是初学者,希望本人作品能给其他初学者带来帮助!