例如输入16在屏幕上面显示10000
谢谢各位指点拉
急求
----------------解决方案--------------------------------------------------------
#include <stdio.h> #define N 10 void main() { int a,i=0,j=0; int m[N];
clrscr(); scanf("%d",&a); while(a!=0) { a=a/2; m[i]=a%2; i++; } j=i-1; for(i=0;i<=j;i++) { printf("%d",m[i]); } }
----------------解决方案--------------------------------------------------------
#include <stdio.h> #define N 10 void main() { int a,i=0,j=0; int m[N];
clrscr(); scanf("%d",&a); while(a!=0) { a=a/2; //m[i]=a%2; m[i]=a%2; //a=a/2; i++; } j=i-1; for(i=0;i<=j;i++) //for(i=j;i>=0;i++) { printf("%d",m[i]); } }
对以上语句改动一下!
----------------解决方案--------------------------------------------------------
有道理~~~~~~~~~~~~~~
----------------解决方案--------------------------------------------------------
对二楼只要改一个顺序就行了:
#include <stdio.h> #define N 10 void main() { int a,i=0,j=0; int m[N];
clrscr(); scanf("%d",&a); while(a!=0) { /*a=a/2; m[i]=a%2;*/ m[i]=a%2; //因为先后顺序错了。 a=a/2; i++; } j=i-1; for(i=j;i>=0;i--)//这一句也是顺序的问题 { printf("%d",m[i]); } }
[此贴子已经被作者于2005-3-15 11:12:34编辑过]
----------------解决方案--------------------------------------------------------
我想也许是我 的表达有错把
这样输出的这个数字可以进行运算吗?
----------------解决方案--------------------------------------------------------
这样输出的是一个数组 并不是二进制数 只是输出后看上去是二进制的
----------------解决方案--------------------------------------------------------