【进制转换]输入一个十进制非负整数n,n<2^31。输出一个01字符串,即n对应的二进制数,不含前导0。输出占一行。 样例输入10 样例输出 1010样例输入 0样例输出 0用C语言编程
时间: 2024-12-29 07:29:21 浏览: 11
在C语言中,可以使用位运算来将十进制整数转换成二进制表示。以下是一个简单的程序实现该功能:
```c
#include <stdio.h>
// 函数声明,接收十进制整数作为参数,返回对应二进制字符串
char* decimalToBinary(int n) {
if (n == 0)
return "0";
char binary[32]; // 容量足够存储31位二进制数(32是为了容纳最高位的'1')
int i = 0;
while (n > 0) {
binary[i++] = '0' + n % 2; // 余数加一转换成字符'0'-'1'
n /= 2; // 整除
}
binary[i] = '\0'; // 添加字符串结束符
// 如果最左边的数字是0,则移除第一个'0'
for (i = 0; binary[i] == '0'; ++i) {}
return binary + i; // 返回去掉前导0后的二进制串
}
int main() {
int n;
printf("请输入一个十进制非负整数 (n<2^31): ");
scanf("%d", &n);
char* binaryStr = decimalToBinary(n);
printf("二进制表示: %s\n", binaryStr);
free(binaryStr); // 注意释放动态分配的内存
return 0;
}
阅读全文