Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18681907
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-05-30 18:37:08

输入两个正整数,然后转换成二进制。。 
并且相加~比如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();
}
阅读(348) | 评论(0) | 转发(0) |
0

上一篇:1 随即输入10位数以内~~

下一篇:杨辉三角

给主人留下些什么吧!~~