解题思路:
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语言代码)浏览:1021 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:682 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1456 |
大家好,我是验题君浏览:572 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:342 |
【计算直线的交点数】 (C语言代码)浏览:916 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1221 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1180 |
C语言程序设计教程(第三版)课后习题8.2 (C++代码)浏览:646 |
简单的a+b (C语言代码)浏览:430 |