#include<stdio.h>
#include<stdlib.h>
//递归实现10进制转2进制
void fun(int n)
{
int count=0;
if(n==0)
{
return ;
}
else
{
fun(n/2);
printf("%d",n%2);
}
}
//非递归实现呢?while循环实现十进制转二进制
void While(int n)
{
printf("\nwhile实现十进制转二进制:\n");
int a[32];
int p,q;//p代表余数变量,q代表 取得多少位余数
int i=0;
while(n)
{
p=n%2;//取余数
a[i]=p;//依次把取得的余数保存在数组a中
n/=2;//除2
i++; //数组下标加1
q++;//统计存了多少位在数组中,但会儿会倒序输出数组的值从而得到10进制对应的2进制
}
for(i=q-1;i>=0;i--)
{
printf("%d",a[i]);//倒序输出
}
printf("\n");
}
int main()
{
int n;
scanf("%d",&n);
printf("递归实现十进制转二进制:\n");
fun(n);
//似乎两次调用函数之间不能有换行???why???
//printf("\nwhile实现十进制转二进制:\n");
While(n);
return 0;
}
递归与while实现求十进制转二进制
原文作者:进制转换
原文地址: https://blog.csdn.net/u012110719/article/details/44924261
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
原文地址: https://blog.csdn.net/u012110719/article/details/44924261
本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。