输入两个正整数,然后转换成二进制。。
并且相加~比如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) |