A41009. 十->二进制转换
填空题
较易
知识点
题目描述
十->二进制转换
题目描述
将十进制整数转换成二进制数
输入格式
输入数据中含有不多于50个整数n(-2^16<n<2^16)。
输出格式
对于每个n,先输出n的值,然后输出“-->”,再然后输出二进制数。每个整数n的输出,独立占一行。
样例输入
2
0
-12
1
样例输出
2-->10
0-->0
-12-->-1100
1-->1
参考答案
#include <stdio.h>
#include <math.h>
void bina( int number );
void output( int *A, int number, int n );
int jinzhi = 2;
/*----------------------------------------*/
int main()
{
int number;
while ( scanf( "%d", &number ) != EOF )
bina( number );
return(0);
}
/*----------------------------------------*/
void bina( int number )
{
int t = fabs( number );//取绝对值,方便计算以及输出
int i = 0;
int A[10000];//存放二进制数
do
{
A[i] = t % jinzhi;
t /= jinzhi;
i++;
}while ( t != 0 );
output( A, number, i );
return;
}
/*----------------------------------------*/
void output( int *A, int number, int n )
{
printf( "%d-->", number );//输出10进制数
if ( number < 0 ) //输出二进制数负号
printf( "-" );
for ( int i = n - 1; i >= 0; i-- )
printf( "%d", A[i] );
printf( "\n" ); //换行
return;
}
上一题
下一题