解题思路:
1.设输入的数为number=12;
2.求其对应二进制数的算法为:
12 /2 =6......(0);
6 /2 =3......(0);
3 /2 =1......(1);
1 /2 =0......(1);
当每次除以2得到新的number,当number==0时结束;
余数从下向上为:1 1 0 0就是该整数对应的二进制数;
注意事项:
该方法仅仅针对整数部分的二进制数;小数部分方法不同;
按题目条件输出;
参考代码:
#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; }
别忘点赞哦-.-
0.0分
14 人评分
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:468 |
1642题解浏览:706 |
A+B for Input-Output Practice (C语言代码)浏览:458 |
1118(求助_已解决)浏览:329 |
C语言程序设计教程(第三版)课后习题9.10 (C语言代码)浏览:614 |
1250题解浏览:555 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:1316 |
C语言程序设计教程(第三版)课后习题8.3 (C++代码)浏览:501 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:504 |
P1003 (Java代码)浏览:755 |