进制转换代码C语言

2024-06-11 22:47:54

#include<stdio.h>voidchange(intx,intr){intc;c=x%r;if(x/r!=0)change(x/r,r);//这是什么意思?printf("%d",c);}voidmain(){intx,r;printf("请输入一个十进制整数x何所要转换的进制r... #include<stdio.h>
void change(int x,int r)
{
int c;
c=x%r;
if(x/r!=0)
change(x/r,r);//这是什么意思?
printf("%d",c);
}
void main()
{

int x,r;
printf("请输入一个十进制整数x何所要转换的进制r(注意x>=r):");
scanf("%d%d",&x,&r);
printf("十进制整数%d转换成的%d进制数为:",x,r);
change(x,r);
printf("\n");

} 展开

好评回答

首先要跳席随但明白十进制转换成其他进制的方法:

十进制数x不停对y进制进行除法内操作,最后再倒取容余数。

比方说十进制数35转换为二进制:

进制转换代码C语言

结果就是100011.

然后我们看change函数,实际上是递归的方法。

c是x对r求余,再打印c之前,把x/r的值再对r求余......直到x/r=0为止。

比方说还是上面这个例子。

c0=x%r=35%2=1

c1=x/r%r=17%2=1

c2=x/r/r%r=8%2=0

.......

c5=x/r/r/r/r/r%r=1%2=1

到这里之后x的值已经是1了,然后因为1/2=0了,所以不再进行下去了。

然后打印方式是越后面出现的先打印。

还有不懂的请追问哦。