C语言实现1个无符号整型的十进制数,按照要求转换为二进制并输出

输入1个无符号整型的十进制数,将其转换成二进制,并输出。(6分)

题目内容:

从键盘输入1个小于65536的无符号整型的十进制数,将其转换成二进制,并输出。

具体要求完成的功能如下:

1)如输入负数,则显示 “请输入非负数”

2)如超过65535,则显示“超过范围”

3)输出转换过的二进制数;

输入格式:

输入一个小于65536的正整数

输出格式:

二进制数每8位空一格不足16位补0

输入样例:

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(" ");
        }
    }
}

以上。

猜你喜欢

转载自blog.csdn.net/weixin_39611130/article/details/80778949