c语言编写最简单的十进制转换二进制的代码
时间: 2024-10-27 10:08:45 浏览: 31
在C语言中,你可以使用`sprintf`函数配合数组来将十进制数转换为二进制字符串。以下是一个最简单的示例:
```c
#include <stdio.h>
#include <stdlib.h> // 包含itoa函数
// 自定义itoa函数(因为在C99标准之前,itoa函数并未包含在stdio.h里)
char* decimal_to_binary(int num) {
char binary[32] = {0}; // 容纳最多31位的二进制数
int i = 0;
if (num == 0)
binary[i++] = '0'; // 单独处理0的情况
while (num > 0) {
binary[i++] = num % 2 + '0'; // 取余并转成字符添加到结果前
num /= 2; // 除以2取整
}
// 将数组反转,因为`itoa`是从低位到高位填充的
for (int j = 0, k = strlen(binary) - 1; j < k; ++j, --k) {
char temp = binary[j];
binary[j] = binary[k];
binary[k] = temp;
}
return binary;
}
int main() {
int decimal_num = 10;
char* binary_str = decimal_to_binary(decimal_num);
printf("十进制数 %d 的二进制表示是: %s\n", decimal_num, binary_str);
free(binary_str); // 注意释放动态分配的空间
return 0;
}
```
阅读全文