#include <stdio.h>
#include <stdlib.h>
void decimalToBinary(int decimal, int L, int binary[]) {
// 初始化数组
for (int i = 0; i <= L; i++) {
binary[i] = 0;
}
// 如果十进制数为0,直接返回
if (decimal == 0) {
return;
}
// 将十进制数转换为二进制数
int index = L;
while (decimal > 0 && index >= 0) {
binary[index--] = decimal % 2;
decimal /= 2;
}
}
int main() {
int decimal = 13; // 要转换的十进制数
int L = 7; // 二进制数组的大小为L+1
int *binary = (int *)malloc((L + 1) * sizeof(int));
if (binary == NULL) {
printf("内存分配失败\n");
return 1;
}
decimalToBinary(decimal, L, binary);
// 打印二进制数组
printf("二进制数: ");
for (int i = 0; i <= L; i++) {
printf("%d", binary[i]);
}
printf("\n");
free(binary);
return 0;
}
说明:
-
函数
decimalToBinary
:-
参数
decimal
是要转换的十进制数。 -
参数
L
是二进制数组的大小减一。 -
参数
binary
是存储二进制数的数组。 -
函数首先将数组初始化为0。
-
然后,它将十进制数转换为二进制数,并将结果存储在数组中,从最高位开始存储。
-
-
主函数
main
:-
定义要转换的十进制数
decimal
和数组大小L
。 -
动态分配内存给二进制数组
binary
。 -
调用
decimalToBinary
函数进行转换。 -
打印转换后的二进制数组。
-
释放动态分配的内存。
-
这个程序会将十进制数转换为二进制数,并将结果存储在数组中,数组的索引值最小为二进制最高位。
另一种格式
#include <stdio.h>
void decimalToBinary(int decimal, int binary[], int L) {
if (L <= 0) {
printf("数组大小必须大于0\n");
return;
}
for (int i = 0; i < L; i++) {
binary[i] = decimal % 2;
decimal = decimal / 2;
}
}
int main() {
int decimal = 13; // 要转换的十进制数
int L = 8; // 数组大小
int binary[L];
decimalToBinary(decimal, binary, L);
printf("十进制数 %d 转换为二进制数(存储在数组中):", decimal);
for (int i = L - 1; i >= 0; i--) {
printf("%d", binary[i]);
}
printf("\n");
return 0;
}
这个程序定义了一个函数 decimalToBinary
,它接受一个十进制数、一个数组和一个数组大小作为参数。函数将十进制数转换为二进制数,并将结果存储在数组中。数组的索引值最小为二进制最低位。