题目:
输入正整数n,将其转换为二进制数并输出转换结果。要求定义并调用函数dectobin(n),计算并返回n的二进制数。例如:调用dectobin(13),返回1101。
解题思路:
十进制转二进制方法:除2取余,逆序排列。
以13为例:
步骤一:除2取余
1、13%2=1 13/2=6
2、6%2=0 6/2=3
3、3%2=1 3/2=1
4、1%2=1 1/2=0
步骤二:逆序排列
将取余后的数逆序排列,得1101
代码:
#include<stdio.h>
void dectobin(int n)//十进制转二进制方法:除2取余,逆序排列
{
int a[100]={ };
int i=0;
for (n;n>0;i++)
{
a[i] = n % 2;//对2取余
n = n / 2;//除2
}
i--;//计数器更新次数比分离后所得数的数量多1,即多执行了一次i++,故需要i--
for(i;i>=0;i--)//逆序排列输出
printf("%d", a[i]);
}
int main()
{
int n;
printf("输入十进制数:");
scanf("%d", &n);
printf("对应的二进制数为:");
dectobin(n);
return 0;
}
运行结果:
