十进制转换二进制的C语言代码
时间: 2024-09-22 17:06:28 浏览: 81
在C语言中,将十进制数转换成二进制可以使用位运算符或者递归函数来实现。以下是两种常见的方法:
**方法一:位操作符(bitwise operators)**
```c
#include <stdio.h>
#include <stdlib.h>
// 函数用于将十进制整数转换为二进制字符串
char* decimalToBinary(int num) {
if (num == 0)
return "0";
char binary[32] = {0}; // 预留足够空间存储最多32位的二进制数
int i = 0;
while (num > 0) {
binary[i++] = '0' + (num % 2);
num /= 2;
}
binary[i] = '\0'; // 添加终止符
// 反转字符串,因为我们在内部从右往左填充
for (int j = 0; j < (i / 2); j++) {
char temp = binary[j];
binary[j] = binary[i - 1 - j];
binary[i - 1 - j] = temp;
}
return binary;
}
int main() {
int decimal = 42;
char* binary = decimalToBinary(decimal);
printf("十进制 %d 转换成二进制为: %s\n", decimal, binary);
free(binary); // 释放内存
return 0;
}
```
**方法二:递归函数**
```c
#include <stdio.h>
// 递归函数版本
void decimalToBinaryRecur(int num, char binary[]) {
if (num == 0) {
binary[0] = '\0';
return;
}
binary[strlen(binary)] = num % 2 + '0';
decimalToBinaryRecur(num / 2, binary);
}
int main() {
int decimal = 42;
char binary[32]; // 同样预留空间
decimalToBinaryRecur(decimal, binary);
printf("十进制 %d 转换成二进制为: %s\n", decimal, binary);
return 0;
}
```
阅读全文