c语言十进制整数转化为二进制使用递归方法
时间: 2025-02-03 15:04:18 浏览: 31
在 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
。
相关推荐


















