Friday, August 31, 2018

Program to Add two Binary Numbers in C++

//Program to Add two Binary Numbers in C++ by if else
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
char a[20],b[20],c[21];
int i,j,x,y,l=0,z;
cout<<"\n Enter first Binary number : ";
cin>>a;                                                                             //use gets(a);
cout<<"\n Enter second binary number : ";
cin>>b; //Use gets(b);
for(i=0;a[i]!='\0';i++)
{
x=i;
}
for(j=0;b[j]!='\0';j++)
{
y=j;
}
    if(x!=y)
    {
    z=x-y;
    if(z>0)
{
for(i=y,j=x;i>=0,j>=(0+z);i--,j--)
{
b[j]=b[i];
}
y=x;
for(i=0;i<z;i++)
{
b[i]='0';
}
}
else
{
z=abs(z);
for(i=x,j=y;i>=0,j>=(0+z);i--,j--)
{
a[j]=a[i];
}
x=y;
for(i=0;i<z;i++)
{
a[i]='0';
}
}
}


for(i=x,j=y;i>=0,j>=0;i--,j--)
{
if(a[i]=='1'&&b[i]=='1'&&l==1)
{
c[i]='1';
l=1;
}
else
if(a[i]=='1'&&b[j]=='1'&&l==0)
{
c[i]='0';
l=1;
}
else
if(a[i]=='1'&&b[j]=='0'&&l==0)
{
c[i]='1';
l=0;
}
else
if(a[i]=='1'&&b[j]=='0'&&l==1)
{
c[i]='0';
l=1;
}
else
if(a[i]=='0'&&b[j]=='1'&&l==0)
{
c[i]='1';
l=0;
}
else
if(a[i]=='0'&&b[j]=='1'&&l==1)
{
c[i]='0';
l=1;
}
else
if(a[i]=='0'&&b[j]=='0'&&l==1)
{
c[i]='1';
l=0;
}
else
{
c[i]='0';
l=0;
}
}
if(l==1)
{
for(i=x+1;i>0;i--)
{
c[i]=c[i-1];
}
c[0]='1';
}
cout<<"\n Binary addition is : ";
for(i=0;i<=(x+1);i++)
cout<<c[i];
return 0;
}

2 comments: