输入1个无符号整型的十进制数,将其转换成二进制,并输出。(6分)
题目内容:
从键盘输入1个小于65536的无符号整型的十进制数,将其转换成二进制,并输出。
具体要求完成的功能如下:
1)如输入负数,则显示 “请输入非负数”
2)如超过65535,则显示“超过范围”
3)输出转换过的二进制数;
输入格式:
输入一个小于65536的正整数
输出格式:
二进制数每8位空一格不足16位补0
输入样例:
扫描二维码关注公众号,回复:
1731603 查看本文章
765
输出样例:
00000010 11111101
时间限制:500ms内存限制:32000kb
C代码实现:
#include <stdio.h>
#include <stdlib.h>
#define uint unsigned int
void bin(int m);
int main()
{
int n;
scanf("%d",&n);
if(n<0){
printf("请输入非负数");
}
else if(n>65535){
printf("超过范围");
}
else{
bin(n);
}
}
void bin(int m){
int a[16],i,j,count;
count = 0;
for(i=0;m;i++){
a[i]=m%2;
m=m/2;
count++;
}
for(j=15;j>=0;j--){
if(j>=count){
a[j] = 0;
printf("%d",a[j]);
if(j==8)
printf(" ");
}
else{
printf("%d",a[j]);
if(j==8)
printf(" ");
}
}
}
以上。