怎么用C语言将十进制转化为二进制
时间: 2024-12-20 09:28:08 浏览: 7
在C语言中,你可以使用标准库函数`itoa()`或者自定义算法将十进制整数转换为二进制字符串。这里我将提供一种常见的手动转换方法:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 自定义函数将十进制转二进制
char* decimal_to_binary(int num) {
static char binary[64]; // 存储结果的数组,足够处理32位有符号整数
int i = 0;
while (num > 0) {
binary[i] = num % 2 + '0'; // 除以2取余数并转换为字符(0->'0', 1->'1')
num /= 2; // 向左移位
i++;
}
if (binary[i] == '\0') { // 如果原数为0,则不需要填充前导零
binary[i - 1] = '\0';
} else {
while (i > 0 && binary[i] == '0') { // 填充前导零
binary[--i] = '0';
}
binary[i] = '\0';
}
return binary;
}
int main() {
int decimal = 10;
char* binary_str = decimal_to_binary(decimal);
printf("十进制 %d 转换成二进制是: %s\n", decimal, binary_str);
free(binary_str); // 别忘了释放动态分配的内存
return 0;
}
```
运行上述程序,会得到十进制数10的二进制表示。
阅读全文