目录

前言

一、转换原理

二、步骤

三、整体代码

写在最后

前言

今天来用函数递归将十进制转为二进制,新人一枚,如果有什么不对的地方请指正,有帮助的话,还请点个赞,抱拳了。

一、转换原理

要用代码让十进制转为二进制,我们得现知道转换的原理。就是一个数除以二取余数,用商做为被除数再除以二,直到商为零为止,从最后一次的余数开始取,得到的数就是二进制的数。

这里举个栗子

10/2=5~~0

5/2=2~~1

2/2=1~~0

1/2=0~~1

所以10的二进制数为1010

二、步骤

1.定义一个函数

1和0的十进制和二进制相同,原样输出

输入一个大于1的数字时,会进入递归中不断除以2直到商为0,然后从最后一次的余数开始取,得到的数就是得到的二进制数。

#includevoid two(int n){if (n == 1 || n == 0)printf("%d", n);else{two(n / 2);printf("%d", n % 2);}}

2.主函数

int main(){int n;scanf("%d", &n);two(n);return 0;}

三、整体代码

这里直接上整个代码,有注释。

#includevoid two(int n)//定义一个函数{if (n == 1 || n == 0)//输入的数为一和零可以直接输出printf("%d", n);else{two(n / 2);//不断进行函数直到商为零printf("%d", n % 2);//从最后一次开始输出每次的余数}}int main(){int n;scanf("%d", &n);//输入要转换的数two(n);return 0;}

写在最后

以上就是用函数递归将十进制转换为二进制的整个代码实现,希望对有需要的人有帮助。