#include <stdio.h>
#define MAXLEN 100
int binCarry(int a[],int len)
{
int carry=0,l=len;
for(int i=0;i<len;i++)
{
a[i]+=carry;
carry=0;
if(a[i]>1)
{
carry+=a[i]/2;
a[i]%=2;
if(i==len-1)
{
a[len]=1;
l++;
}
}
}
return l;
}
int binAdd(int a[],int b[],int sum[],int alen,int blen)
{
int i,j,len=alen;
for(i=0,j=0;i<alen&&j<blen;i++,j++)
{
sum[i]=a[i]+b[j];
}
if(i>=alen && j< blen)
{
while(j<blen)
{
sum[j]=b[j];
j++;
}
len=blen;
}
if(j>=blen && i<alen)
{
while(i<alen)
{
sum[i]=a[i];
i++;
}
len=alen;
}
len=binCarry(sum,len);
return len;
}
int main()
{
int a[MAXLEN]={1,0,0,1,1};
int b[MAXLEN]={1,1,1,0,1};
int i,len;
int sum[MAXLEN];
len=binAdd(a,b,sum,5,5);
for(i=len-1;i>=0;i--)
{
printf("%d",sum[i]);
}
getchar();
}