C语言中如何做到输入十进制数字打印出二进制数字
时间: 2024-09-25 12:19:08 浏览: 41
在C语言中,将十进制整数转换成二进制并打印出来,通常会利用循环和位运算。以下是一个简单的示例,展示了如何通过循环逐位右移和与1进行与运算的方式实现这个过程:
```c
#include <stdio.h>
// 函数接收一个十进制整数作为参数,并返回其对应的二进制字符串
char* decimalToBinary(int num) {
int binary[32]; // 用于存储二进制数,假设int类型最大位宽是32位
int i = 0;
while (num > 0) {
binary[i] = num % 2; // 取余数得到最低位
num /= 2; // 除以2向高位移动
i++;
}
// 将二进制数组反转,因为数组从低位到高位存储
char* result = (char*)malloc(sizeof(char) * (i+1));
for (int j = i - 1; j >= 0; j--) {
result[j] = '0' + binary[j];
}
result[i] = '\0'; // 添加结束符
return result;
}
int main() {
int input;
printf("请输入一个十进制整数: ");
scanf("%d", &input);
char* binaryStr = decimalToBinary(input);
printf("该数字的二进制表示为: %s\n", binaryStr);
free(binaryStr); // 不要忘记释放动态分配的内存
return 0;
}
```
当你运行这段代码时,它会提示用户输入一个十进制数,然后将其转换成二进制并显示结果。
阅读全文