?? 二進制加法.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 + -