题目内容:
从键盘输入1个小于65536的无符号的十进制整数,将其转换成16位二进制,并输出。
具体要求完成的功能如下:
1)如输入负数,则输出 “数据小于0”
2)如超过65535,则输出“超过最大数”
3)输出转换过的16位二进制数;
输入格式:
输入一个小于65536的正整数
输出格式:
二进制数每8位数字后空一格,不足16位补0,行末没有空格。
输入样例:
765
输出样例:
00000010 11111101
时间限制:500ms内存限制:32000kb
#include <stdio.h>
int main()
{
int n , a[16];
scanf( "%d" , &n ) ;
if( n < 0 ) printf( "数据小于0\n" ) ;
else if( n > 65535 ) printf( "超过最大数" ) ;
else
{
int i ;
for( i = 15 ; i >= 0 ; i-- )
a[ i ] = 0 ;
i = 15 ;
do
{
a[ i ] = n % 2 ;
n /= 2 ;
i-- ;
} while( n > 0 ) ;
for( i = 0 ; i < 8 ; i++ )
printf( "%d" , a[ i ] ) ;
printf( " " ) ;
for( i = 8 ; i < 16 ; i++ )
printf( "%d" , a[ i ] ) ;
printf( "\n" ) ;
}
return 0 ;
}