C语言十进制转化为二进制用递归函数
时间: 2023-09-13 14:12:37 浏览: 553
以下是将十进制数转换为二进制数的递归函数实现:
#include <stdio.h>
void decimalToBinary(int n) {
if (n == 0) {
return;
} else {
decimalToBinary(n / 2);
printf("%d", n % 2);
}
}
int main() {
int decimalNum = 10;
printf("The binary representation of %d is: ", decimalNum);
decimalToBinary(decimalNum);
printf("\n");
return 0;
}
该函数将十进制数 n
转换为二进制数并打印出来。递归函数的基本思想是将 n
除以 2
并递归调用函数,直到 n
为 0
为止。然后,逆序打印出余数,从而获得二进制数。
相关问题
c语言十进制整数转化为二进制使用递归方法
在 C 语言中,将十进制整数转换成二进制并使用递归方法可以按照以下步骤操作:
- 基本情况:当输入的整数
n
等于0时,表示已经处理完所有的位,此时返回空字符串作为二进制形式的终止。
if (n == 0) return "";
- 递归过程:对于非零的
n
,我们将它除以2取余数,然后将这个余数添加到结果的最左侧,并继续对n
本身除以2进行下一次迭代,直到n
变为0。
char binary[10]; // 存储二进制结果的空间,假设最多8位
int index = 0; // 记录当前二进制数组的位置
binary[index++] = (n % 2) + '0'; // 添加余数对应的字符(0 或 1)
binary[index] = '\0'; // 结束字符串
// 递归调用,传入 n / 2
return binary[index - 1] + convertToBinary(n / 2);
将这两部分组合起来形成完整的函数:
#include <stdio.h>
#include <string.h>
char* convertToBinary(int n) {
if (n == 0)
return "";
char binary[10];
int index = 0;
binary[index++] = (n % 2) + '0';
binary[index] = '\0';
return binary[index - 1] + convertToBinary(n / 2);
}
int main() {
int decimal = 42;
char *binary_str = convertToBinary(decimal);
printf("Decimal %d in binary is %s\n", decimal, binary_str);
return 0;
}
当你运行这段代码,会得到输出 Decimal 42 in binary is 101010
。
C语言iostream头文件代码十进制转化为二进制用递归函数
对于一个十进制数,将其转化为二进制可以使用递归函数。具体实现如下:
#include <stdio.h>
void decimal_to_binary(int decimal)
{
if (decimal == 0) {
return;
}
decimal_to_binary(decimal / 2);
printf("%d", decimal % 2);
}
int main()
{
int decimal;
printf("Please input a decimal number: ");
scanf("%d", &decimal);
printf("The binary representation of %d is: ", decimal);
decimal_to_binary(decimal);
printf("\n");
return 0;
}
以上代码中,decimal_to_binary
函数通过递归的方式将一个十进制数转化为二进制。具体实现是每次将十进制数除以 2,直到十进制数为 0,然后从最后一个余数开始输出,即可得到二进制表示。在 main
函数中,先读入一个十进制数,然后调用 decimal_to_binary
函数转化为二进制,并输出结果。
相关推荐












