当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

输入两个正整数,然后转换成二进制

输入两个正整数,然后转换成二进制。。 
并且相加~比如25+26的二进制就是00110011(显示出来),然后在转换成10进制,就是51拉~

不说啥了~开始连我也看不懂自己写的程序了~。。。。



main()
{ int a[100],b[100],c[100],k,n,i,j,z,d=0,t=1;
  printf("shuru liang ge zhengshu :");
  printf("a=");
  scanf("%d",&k);
  printf("b=");
  scanf("%d",&n);
  for(i=0;i<8;i++)  /*把k和n转换成二进制,比如25为00011001,26为00011010,在把他们分别
  {j=k%2;z=n%2;    放在a[]和b[]的数组内,我是不是很聪明呀?:)*/
    a[i]=j;b[i]=z;
    k=k/2;n=n/2;
   }
  for(i=0;i<8;i++)   /*本程序最精华的部分,通常把K和N的二进制相加,非常感谢亡灵天灾的一位朋
  { c[i]=a[i]+b[i]+c[i];        友的帮助*/
     if(c[i]==2) {c[i]=0;a[i+1]++;}
     if(c[i]==3) {c[i]=1;a[i+1]++;}
  }
  for(i=7;i>=0;i--)   /*很明显,这个是要把二进制换成十进制的*/
  printf("%d",c[i]);
  printf("\\n");
  for(i=0;i<=7;i++)
  {d=d+c[i]*t;
   t*=2;
   }
  printf("%d",d);
  getch();
}
相关内容
赞助商链接