输入一个十进制数(大于等于0的正整数,int满足其存储要求),将其转换为二进制输出。 输入格式: 输入一个十进制数(大于等于0的正整数,int满足其存储要求)。 输出格式: 输出对应的二进制。
时间: 2024-12-29 13:35:15 浏览: 12
在C语言中,将一个十进制整数转换为二进制可以使用`bitset`库或者手动进行位运算。这里我们展示如何使用位运算法则实现:
```c
#include <stdio.h>
// 函数定义,接收一个int类型参数并返回它的二进制表示字符串
char* decimalToBinary(int num) {
char binary[32]; // 假设int的最大值可以用31位表示
int i = 0;
while (num > 0) {
binary[i++] = '0' + (num % 2);
num /= 2; // 向右移一位
}
// 如果最高位是0,添加前导零
if (binary[0] == '0') {
binary[0] = '1'; // 因为最小的非零二进制数是1
++i;
}
// 移动到字符串的开始并加上'\0'
memmove(binary, binary + i, sizeof(binary) - i);
return binary;
}
int main() {
int input;
printf("请输入一个大于等于0的正整数: ");
scanf("%d", &input);
char* binaryStr = decimalToBinary(input);
printf("对应的二进制是: %s\n", binaryStr);
free(binaryStr); // 释放动态分配的内存
return 0;
}
```
当你运行这个程序时,它会提示你输入一个十进制数,然后显示该数字的二进制形式。
阅读全文