C语言中十进制转二进制
时间: 2024-09-20 08:07:31 浏览: 48
C语言十进制转二进制代码实例
5星 · 资源好评率100%
在C语言中,将十进制数转换为二进制数可以使用内置函数`itoa()`(integer to ASCII),但这在头文件`stdlib.h`中并不是标准库的一部分,因为它是非标准的。如果你的目标平台支持它,可以使用这个函数;否则,你需要自己编写算法实现这个功能,通常会采用循环和位操作的方式来完成。
下面是一个简单的示例,展示了如何使用递归法手动转换:
```c
#include <stdio.h>
#include <string.h>
// 自定义函数将十进制转二进制
char* dec_to_bin(int num, char binary[33]) {
if (num == 0) {
binary[0] = '0'; // 如果是0,直接添加'0'
return binary;
}
int remainder = num % 2; // 取余数
binary[strlen(binary)] = remainder + '0'; // 将余数添加到结果字符串中
dec_to_bin(num / 2, binary); // 递归调用,处理高位
// 逆序字符串,因为我们从低位开始处理
reverse(binary);
return binary;
}
void reverse(char *str) {
int start = 0, end = strlen(str) - 1;
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
int main() {
int decimal = 42;
char binary[33];
strcpy(binary, "");
binary = dec_to_bin(decimal, binary);
printf("十进制 %d 转换为二进制是 %s\n", decimal, binary);
return 0;
}
```
运行这段代码,你会得到 `十进制 42 转换为二进制是 101010`。
阅读全文