十进制到二进制的转换(递归)
以下是将十进制数转换为其二进制等效值的 C 语言程序(使用递归):
#include<stdio.h>
// 函数原型声明
void decimal_binary(int );
void F(int );
void reverse(int );
int main()
{
printf("\n\n\t\tLabEx - 学习的最佳场所\n\n\n");
int n;
printf("\n\n请输入一个十进制整数:");
scanf("%d", &n);
// 以 31 位格式输出
printf("\n\n十进制值 %d 使用 decimal_binary 方法的二进制等效值为:", n);
decimal_binary(n); // 函数调用
printf("\n\n十进制值 %d 使用 F() 方法的二进制等效值为:", n);
F(n); // 函数调用
printf("\n\n值 %d 的二进制表示的反转为:", n);
reverse(n); // 函数调用
printf("\n\n\t\t\t编程很有趣!\n\n\n");
return 0;
}
// 函数定义
void decimal_binary(int i)
{
if(i <= 1)
printf("%d", i); // 以从上到下的格式打印
else
{
decimal_binary(i/2);
printf("%d", i%2);
}
}
void F(int j)
{
if(j/2)
{
F(j/2);
}
printf("%d", j%2);
}
void reverse(int k)
{
if(k <= 1)
printf("%d", k);
else
{
printf("%d", k%2);
F(k/2);
}
printf("\n\n");
}