c语言使用函数中使用数组实现十进制转换为二进制
时间: 2024-10-24 22:14:36 浏览: 56
在C语言中,将十进制整数转换为二进制通常通过递归的方式实现,可以创建一个函数,接收一个数组作为参数,用于保存二进制结果。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明,返回值类型为整型数组和数组长度
void dec_to_bin(int num[], int size, int* binary_size);
int main() {
int decimal = 42; // 要转换的十进制数
int binary[32] = {0}; // 初始化足够大的数组存储二进制结果
int binary_length = 0;
// 调用函数并获取二进制数组
dec_to_bin(binary, sizeof(binary), &binary_length);
// 输出二进制表示
printf("Binary representation of %d is: ", decimal);
for (int i = binary_length - 1; i >= 0; i--) {
printf("%d", binary[i]);
}
return 0;
}
// 十进制转二进制核心函数
void dec_to_bin(int num[], int size, int* binary_size) {
if (num[size - 1] == 0) { // 当数组已满时停止递归
*binary_size = size;
return;
}
num[size - 1]++; // 将当前位设为1,然后除以2取余
num[size - 1] %= 2;
dec_to_bin(num, size + 1, binary_size); // 继续向高位处理
}
```
这个程序首先定义了一个`dec_to_bin`函数,它会递归地处理每一位,并将其添加到`num[]`数组中。当处理完所有位后,它会更新`binary_size`指针指向的位置,以指示实际的二进制长度。
阅读全文