C语言十进制转换为二进制
时间: 2024-12-11 07:39:44 浏览: 10
这是十转二的c程序
在C语言中,将十进制整数转换成二进制可以使用标准库函数`itoa()`或者手动通过位运算来实现。以下是两种常见的方法:
1. 使用`itoa()`函数:
```c
#include <stdio.h>
#include <stdlib.h>
// 注意这个函数在一些系统上可能不可用,这里仅作示例
char* dec_to_bin(int num) {
char binary[64]; // 足够大的数组来存储最大32位的二进制数
sprintf(binary, "%b", num);
return binary;
}
int main() {
int decimal = 10; // 需要转换的十进制数
char *binary = dec_to_bin(decimal);
printf("十进制 %d 转换成二进制是:%s\n", decimal, binary);
free(binary); // 释放内存,如果使用了动态分配的内存
return 0;
}
```
2. 手动转换(使用位运算):
```c
#include <stdio.h>
void dec_to_bin_manual(int num, char binary[]) {
if (num == 0) {
binary[0] = '0';
binary[1] = '\0';
return;
}
while (num > 0) {
binary[--size] = (num % 2) + '0'; // 把余数加1转为字符
num /= 2;
}
// 如果输入的数字大于0,则最前面补0
for (int i = 0; i < size; ++i) {
if (binary[i] == '0')
break;
else
std::swap(binary[size], binary[i]);
}
binary[size+1] = '\0';
}
int main() {
int decimal = 10;
char binary[64];
dec_to_bin_manual(decimal, binary);
printf("十进制 %d 转换成二进制是:%s\n", decimal, binary);
return 0;
}
```
阅读全文