原题链接:十->二进制转换
解题思路:
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分
9 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复