C语言从键盘输入一个数,以二进制形式打印输出
时间: 2024-10-08 22:22:42 浏览: 34
在C语言中,你可以使用`scanf`函数从键盘获取用户输入的一个十进制数,然后将其转换为二进制并打印出来。这里是一个简单的示例:
```c
#include <stdio.h>
#include <math.h>
// 函数用于将十进制数转换为二进制字符串
char* dec_to_bin(int num) {
int size = (int)log2(num + 1) + 1;
char *binary = malloc(size * sizeof(char));
binary[size - 1] = '\0';
while (num > 0) {
binary[size - 1] = num % 2 + '0';
num /= 2;
size--;
}
// 移动指针到最左边
for (int i = 0; i < size / 2; i++) {
char temp = binary[i];
binary[i] = binary[size - 1 - i];
binary[size - 1 - i] = temp;
}
return binary;
}
int main() {
int decimal_num;
printf("请输入一个十进制整数: ");
scanf("%d", &decimal_num);
// 转换并打印二进制结果
char *binary_str = dec_to_bin(decimal_num);
printf("该数字的二进制表示是: %s\n", binary_str);
free(binary_str); // 不忘记释放动态分配的内存
return 0;
}
```
在这个程序中,`dec_to_bin`函数实现了十进制转二进制的过程,`main`函数则负责接收用户的输入并调用这个函数。
阅读全文