📄 二进制加法.cpp
字号:
#include <iostream.h>
////////////////////////////////////////////////////
// 数组a,b存放参与运算的二进制数;m,n为a,b的长度 //
// 数组ee存放运算的结果,长度max(m,n)+1 //
////////////////////////////////////////////////////
void li2add(int a[],int b[],int m,int n,int ee[])
{ int i,j,k,t=0;
if(m==n)
{ for (i=n;i>0;i--)
{ int l=i-1;
k=t+a[l]+b[l];
ee[i]=k%2;
t=k/2;
}
ee[0]=t;
return;
}
if(m>n)
{ j=m-n;
for(i=m;i>j;i--)
{ int l=i-1;
k=t+a[l]+b[l-j];
ee[i]=k%2;
t=k/2;
}
for(i=j;i>0;i--)
{ k=t+a[i-1];
ee[i]=k%2;
t=k/2;
}
ee[0]=t;
return;
}
if(m<n)
{ j=n-m;
for(i=n;i>j;i--)
{ int l=i-1;
k=t+a[l-j]+b[l];
ee[i]=k%2;
t=k/2;
}
for(i=j;i>0;i--)
{ k=t+b[i-1];
ee[i]=k%2;
t=k/2;
}
ee[0]=t;
return;
}
}
void main( )
{ int n=16;
int ab[17];
static int aa[]={1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0};
static int bb[]={0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0};
li2add(aa,bb,16,16,ab);
for (n=0;n<17;n++)
cout << ab[n];
cin >> n;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -