输入一个非负十进制整数,利用数组将其转换为二进制形式输出。 输入:一个非负整数n (0<=n<2^31)。 输出:对应的二进制形式。用C语言
时间: 2024-12-15 19:21:03 浏览: 3
java代码-任意给出一个十进制整数,将十进制整数转换为二进制数。
5星 · 资源好评率100%
在C语言中,你可以使用`itoa()`函数或者自定义一个转换函数来将非负十进制整数转换为二进制字符串。这里是一个简单的示例,展示了如何使用递归实现这个功能:
```c
#include <stdio.h>
#include <string.h>
// 自定义的二进制转换函数
char* decimalToBinary(int n, char* binary) {
if (n == 0) {
binary[0] = '\0'; // 结束字符串
return binary;
} else {
// 将当前位添加到结果中
binary[strlen(binary)] = n % 2 + '0';
binary[strlen(binary) + 1] = '\0';
// 更新n值并继续递归
return decimalToBinary(n / 2, binary);
}
}
int main() {
int n = 15; // 例子中的输入
char binary[32]; // 预先分配足够空间存储31位二进制数,因为n < 2^31
if (decimalToBinary(n, binary)) {
printf("The binary representation of %d is: %s\n", n, binary);
}
return 0;
}
```
这个程序首先检查输入的数是否为零,如果是,则返回空字符串表示结束。否则,将当前位(n除以2的余数)添加到结果字符串的末尾,更新n的值并递归调用自身。最后在main函数中调用该函数并打印结果。
阅读全文