目录
前言
一、转换原理
二、步骤
三、整体代码
写在最后
前言
今天来用函数递归将十进制转为二进制,新人一枚,如果有什么不对的地方请指正,有帮助的话,还请点个赞,抱拳了。
一、转换原理
要用代码让十进制转为二进制,我们得现知道转换的原理。就是一个数除以二取余数,用商做为被除数再除以二,直到商为零为止,从最后一次的余数开始取,得到的数就是二进制的数。
这里举个栗子
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;}
写在最后
以上就是用函数递归将十进制转换为二进制的整个代码实现,希望对有需要的人有帮助。