第1个回答 2009-11-16
程序代码如下:
程序说明:定义了一个字符常量n和一个整型的数组f[n]给n赋值20是为了给数组足够大的空间,用来存放所求出来的二进制代码,其实在实际抄作过程中只用到了8个,这个在定义时只要大于8的数一般就可以了,这对去程序的运行没有任何影响。因为程序中所求出来的二进制码是逆序的(如3的二进制代码按此程序求出来为11000000即为192源码,如果要得到正常的二进制码则另外定义一数组,将所求代码逆序存放或者用堆栈。但是此程序已经能够达到所要的功能不需要再进行上述类似抄作)(这个算法已经很简单了)
#include <math.h>
#define n 20
main()
{int i=0,j,k,a,f[n],sum=0;
printf("please input the number you want to operate\n");
scanf("%d",&a);
while(a!=0)
{f[i]=a%2;
a=(int)(a/2);
i++;
}
if(i<7)
for(;i<=7;i++)
f[i]=0;
k=i--;
for(j=0;j<k;j++)
{sum+=f[j]*pow(2,i);
i--;}
printf("the number you want is:\n");
printf("%d",sum);
}本回答被提问者采纳