编写一个程序,将用户输入的十进制短整型正数n转换成二进制数。如果用户输入负数或者读入错误,则要求用户重新输入。 输入提示信息:"n=" **输入格式:"%hd" /* short 类型 */ 输出信息:"the binary number is " **输出格式要求:"%d" 程序运行示例1如下: n=37 the binary number is 0000000000100101 程序运行示例2如下: n=a n=-23 n=8756 输出: the binary number is 0010001000110100
时间: 2024-02-15 07:02:25 浏览: 64
好的,这个问题很简单,下面是 C 语言的实现代码:
```c
#include <stdio.h>
int main()
{
short n;
while (1) {
printf("n=");
if (scanf("%hd", &n) != 1) {
printf("Invalid input. Please input an integer.\n");
while (getchar() != '\n'); /* 清空输入缓冲区 */
continue;
}
if (n < 0) {
printf("Invalid input. Please input a positive integer.\n");
continue;
}
break;
}
printf("the binary number is ");
for (int i = 15; i >= 0; i--) {
printf("%d", (n >> i) & 1);
}
printf("\n");
return 0;
}
```
这个程序首先会循环等待用户输入一个正整数,如果用户输入的不是整数或者是负数,就会提示用户重新输入,直到输入合法为止。然后,程序会将输入的整数转换成二进制数并输出。需要注意的是,这个程序假设 short 类型是 16 位的,因此可以用 16 位的二进制数表示。如果 short 类型不是 16 位的,这个程序就需要做出相应的修改。
阅读全文