测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题