100% found this document useful (2 votes)
1K views

COA Lab Manual COMP

The document contains code for implementing various binary arithmetic operations like addition, subtraction, multiplication and Booth's multiplication algorithm. It takes binary inputs from the user for operands and performs the arithmetic operations on them. For Booth's algorithm, it iteratively performs addition/subtraction of the multiplicand from the accumulator depending on the multiplier bit and shift operations to calculate the product in binary form, then converts it to decimal. Test cases with sample inputs and outputs are provided.

Uploaded by

Manoj Naik
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (2 votes)
1K views

COA Lab Manual COMP

The document contains code for implementing various binary arithmetic operations like addition, subtraction, multiplication and Booth's multiplication algorithm. It takes binary inputs from the user for operands and performs the arithmetic operations on them. For Booth's algorithm, it iteratively performs addition/subtraction of the multiplicand from the accumulator depending on the multiplier bit and shift operations to calculate the product in binary form, then converts it to decimal. Test cases with sample inputs and outputs are provided.

Uploaded by

Manoj Naik
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

PRACTICAL NO:-1

//**************Decimal to Binary*************

#include<iostream.h>
#include<conio.h>
void main()
{
clrscr();
int a,n=0,q,rem,x[20],i;
cout<<"Enter the Decimal number:";
cin>>a;
while(a!=0)
{
rem=a%2;
x[n]=rem;
a=a/2;
n=n+1;
}
cout<<"The Binary conversion is:";
for(i=n-1;i>=0;i--)
cout<<x[i];
getch();
}

OUTPUT

Enter the Decimal number : 129


The Binary conversion is: 10000001
PRACTICAL NO:-2

//***************2’s compliment program****************

#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<process.h>
#include<stdlib.h>
void complement(char *a);
void main()
{
char a[16];
int i;
clrscr();
cout<<"Enter the binary no :";
cin>>a;
for(i=0;a[i]!='\0';i++)
{
if(a[i]!='0' && a[i]!='1')
{
cout<<"the no entered is not a binary no,entre the correct no";
exit(0);
}
}
complement(a);
getch();
}
void complement(char *a)
{
int l,i,c=0;
char b[16];
l=strlen(a);
for(i=l-1;i>=0;i--)
{
if(a[i]=='0')
b[i]='1';
else
b[i]='0';
}
for(i=l-1;i>0;i--)
{
if(i==l-1)
{
if(b[i]=='0')
b[i]='1';
else
{
b[i]='0';
c=1;
}
}
else
{
if(c==1 && b[i]=='0')
{
b[i]='1';
c=0;
}
else if(c==1 && b[i]=='1')
{
b[i]='0';
c=1;
}
}
}
b[l]='\0';
cout<<"The 2's comp is"<<b;
}

OUTPUT

Enter the binary no : 10001


The 2's comp is" 01111
PRACTICAL NO:-3

//***********Half Adder & Full Adder***************

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<process.h>
#include<stdlib.h>
void main()
{
int a,b,c,carry=0,sum=0,ch;
clrscr();
do
{
cout<<"\noperation\n 1:half adder\n 2:full adder\n 3:exit";
cout<<"\n enter ur option:\t";
cin>>ch;
switch(ch)
{
case 1: cout<<"enter value of a & b\n";
cin>>a>>b;
if((a==0||a==1)&&(b==0||b==1))
{
sum=a^b;
carry=a&b;
cout<<"sum="<<sum<<"carry="<<carry;
}
else
cout<<"invalid input\n";
break;
case 2: cout<<"enter the values of a & b & c\n";
cin>>a>>b>>c;
if((a==1||a==0)&&(b==0||b==1) && (c==0||c==1))
{
sum=a^b^c;
carry=a&b|b&c|a&c;
cout<<"sum="<<sum<<"carry="<<carry;
}
else
cout<<"invalid input\n";
break;
case 3: exit(0);
}
}
while(ch<3);
getch();
}

OUTPUT

Operation
1:half adder
2:full adder
3:exit

enter ur option: 1
enter value of a & b
0
1
Sum=1 carry=0

Operation
1:half adder
2:full adder
3:exit

enter ur option: 2
enter value of a & b & c
1
1
1
Sum=1 carry=1

Operation
1:half adder
2:full adder
3:exit

enter ur option:3
PRACTICAL NO:-4

//************Addition Of Two Binary Numbers****************

#include<iostream.h>
#include<conio.h>
#define HIGH 1
#define LOW 0

class binary
{
public:
long c[8];
long CARRY;
binary()
{
CARRY=0;
int i;
//for(int i=0;i<8;i++)//
c[i]=0;
}
};
int main()
{
binary bin;
long i,n,a,b,k,m,A;
clrscr();
n=7;
cout<<"\nEnter the value of a&b in Decimal :";
cin>>a>>b;
for(i=0;i<8;i++)
{
k=((a>>i)&1);
m=((b>>i)&1);
if(!(bin.CARRY^HIGH))
{
bin.c[n]=((bin.CARRY^k)^m);
if(!(k^HIGH)||!(m^HIGH))
bin.CARRY=1;
else
bin.CARRY=0;
}
else if(!(k^HIGH) && !(m^HIGH))
{
bin.CARRY=1;
bin.c[n]=k^m;
}
else if(!(k^LOW)||!(m^LOW))
{
if(!(bin.CARRY^HIGH))
{
bin.c[n]=((bin.CARRY^k)^m);
bin.CARRY=0;
}
else
bin.c[n]=k^m;
}
n--;
}
cout<<"Addition of Two Binary No. is:";
for(i=0;i<8;i++)
cout<<bin.c[i];
getch();
return 0;
}

OUTPUT

Enter the value of a&b in Decimal ::


127
127
Addition of Two Binary No. is : 11111110
PRACTICAL NO:-5

//********************** Unsigned Multiplication Of Two Numbers**************


#include<iostream.h>
#include<stdio.h>
#include<conio.h>

#define max 16

void convert1(int *n1,int *n2)


{
int i,z,j,d=0,n=1;
z=(2*max);
for(i=max-1;i>=0;i--)
{
z--;
if(n1[i]==1)
{
n=1;
for(j=1;j<=z;j++)
n = n * 2;
d = d + n;
}
}
n = 1;
for(i=max-1;i>=0;i--)
{
if(n2[i]==1)
{
n = 1;
for(j=1;j<=i;j++)
n = n * 2;
d = d + n;
}
}
cout<<"\n\n\tIN DECIMAL FORM:"<<d<<" ";
}

void convert2(int x,int *arr)


{
int q=0,j=x;
while(j>=0 && q< max)
{
x=j%2;
arr[q++]=x;
j = j/2;
}
}

int addbin(int *n1,int *n2,int *arr3)


{
int i,c=0,g,p,j,arr[max];
for(i=max-1;i>=0;i--)
{
g = n1[i]&n2[i];
p = n1[i]^n2[i];
arr[i] = p^c;
c = g|(p&c);
}
c = 0;
for(i=0;i< max;i++)
{
if(c==0)
{
if(n1[i]==0 && n2[i]==0)
arr3[i]=0;
if(n1[i]==0 && n2[i]==1)
arr3[i]=1;
if(n1[i]==1 && n2[i]==0)
arr3[i]=1;
if(n1[i]==1 && n2[i]==1)
{
arr3[i] = 0;
c = 1;
}
}
else if(c==1)
{
if(n1[i]==0 && n2[i]==0)
{
arr3[i] = 1;
c = 0;
}
if(n1[i]==0 && n2[i]==1)
arr3[i]=0;
if(n1[i]==1 && n2[i]==0)
arr3[i]=0;
if(n1[i]==1 && n2[i]==1)
arr3[i]=1;
}
}
return c;
}

void shift(int *n1,int *n2,int *arr3)


{
int c=0,i,j,k,temp[max];
for(i=0;i< max;i++)
{
if(arr3[0]==1)
{
c = addbin(n1,n2,temp);
for(j=0;j< max;j++)
n1[j] = temp[j];
}
for(j=0;j< max-1;j++)
arr3[j] = arr3[j+1];
arr3[max-1] = n1[0];
for(j=0;j< max-1;j++)
n1[j] = n1[j+1];
n1[max-1] = c;
}
}

void main()
{
int i,j,a[max],b[max],q[max],x,y;
clrscr();
cout<<"\n _________________________________________________";
cout<<"\n|\t\tUnsigned Multiplication\n";
cout<<"|----------------------------------------------------------------------------";
cout<<"\n|Enter The First No\t: ";
cin>>x;
cout<<"|Enter The Second No\t: ";
cin>>y;
cout<<"|_________________________________________________";
while(x>0 && y>0)
{
convert2(0,a);
cout<<"\n\nTHE 16-bit BINARY FORM OF 0\t: ";
for(i=max-1;i>=0;i--)
cout<<a[i];
convert2(x,b);
cout<<"\nTHE 16-bit BINARY FORM OF " <<x<<"\t: ";
for(i=max-1;i>=0;i--)
cout<<b[i];
convert2(y,q);
cout<<"\nTHE 16-bit BINARY FORM OF "<<y<<"\t: ";
for(i=max-1;i>=0;i--)
cout<<q[i];
shift(a,b,q);
cout<<"\n\n\tCalculating "<<x<< "*"<<y;
cout<<"In 16-bit BINARY FORM :\n\n\t";
for(i=max-1;i>=0;i--)
cout<<a[i];
cout<<"\n\t";
for(j=max-1;j>=0;j--)
cout<<q[j];
convert1(a,q);
x = -1;
getch();
}
}
/***************** OUTPUT ********************
_________________________________________________
| Unsigned Multiplication
|-------------------------------------------------------------------------
|Enter The First No : 56
|Enter The Second No : 12
|_________________________________________________

THE 16-bit BINARY FORM OF 0 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0


THE 16-bit BINARY FORM OF 56 : 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
THE 16-bit BINARY FORM OF 12 : 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0

Calculating 56 * 12 In 16-bit BINARY FORM :

0000000000000000
0000001010100000

IN DECIMAL FORM: 672


PRACTICAL NO:-6

//***************Booth’s Algorithm***************

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<math.h>
int get(int a)
{
char ch='B';
int flag=0;
if(a==1)
ch='A';
do
{
cout<<"| ENTER VALUE OF"<<" " <<ch<<":";
cin>>a;
if(a<0)
{
a=a*-1;
flag=1;
}
if(9<=a)
cout<<"|\n\t!INVALID NUMBER.ENTER VALUE(-9<A<9)!";
}
while(9<=a);
if(flag)
a=a*-1;
return(a);
}
void add(int*a,int*b)
{
int x,i,c=0;
for(i=3;i>=0;i--)
{
x=a[i];
a[i]=c^x^b[i];
if(((c==1)&&(x==1))||((x==1)&&(b[i]==1))||((b[i]==1)&&(c==1)))
c=1;
else
c=0;
}
}
void binary(int x,int *arr)
{
int i,p=x,c[4]={0,0,0,1};
for(i=0;i<4;i++)
arr[i]=0;
if(x<0)
x=x*-1;
i=3;
do
{
arr[i]=x%2;
x = x/2;
i--;
}while(x!=0);
if(p< 0)
{
for(i=0;i< 4;i++)
arr[i]=1-arr[i];
add(arr,c);
}
cout<<"\n\nTHE BINARY EQUIVALENT OF"<<" "<<p<<" "<<"IS :";
for(i=0;i< 4;i++)
cout<<arr[i];
}
void rshift(int x,int *y)

{
int i;
for(i=3;i>0;i--)
y[i] = y[i-1];
y[0] = x;
}
void main()
{
int q=0,i,j,a,b,A[4]={0,0,0,0},C[4]={0,0,0,1},C1[8]={0,0,0,0,0,0,0,1};
int s=0,z=0,Q[4],M[4],temp,temp1[4],ans[8],y,x=0,c=0;
clrscr();
cout<<"\n|----------------------------------------------------\n";
a = get(1);
b=get(0);
cout<<"\n|---------------------------------------------------\n";
binary(a,M);
binary(b,Q);
cout<<"\n\n---------------------------------------------------\n";
cout<<" OPERATION\t\t A\t Q\tQ'\t M";
cout<<"\n\n INITIAL\t\t";
for(i=0;i< 4;i++)
cout<<A[i];
cout<<"\t";
for(i=0;i< 4;i++)
cout<<Q[i];
cout<<"\t";
cout<<q<<"\t";
for(i=0;i< 4;i++)
cout<<M[i];
for(j=0;j< 4;j++)
{
if((Q[3]==0)&&(q==1))
{
cout<<"\n A:=A+M \t\t";
add(A,M);
for(i=0;i< 4;i++)
cout<<A[i];
cout<<"\t";
for(i=0;i< 4;i++)
cout<<Q[i];
cout<<"\t"<<q<<"\t";
for(i=0;i< 4;i++)
cout<<M[i];
}
if((Q[3]==1)&&(q==0))
{
cout<<"\n A:=A-M \t\t";
for(i=0;i< 4;i++)
temp1[i] = 1-M[i];
add(temp1,C);
add(A,temp1);
for(i=0;i< 4;i++)
cout<<A[i];
cout<<"\t";
for(i=0;i< 4;i++)
cout<<Q[i];
cout<<"\t"<<q<<"\t";
for(i=0;i< 4;i++)
cout<<M[i];
}
cout<<"\n Shift \t\t\t";
y = A[3];
q = Q[3];
rshift(A[0],A);
rshift(y,Q);
for(i=0;i< 4;i++)
cout<<A[i];
cout<<"\t";
for(i=0;i< 4;i++)
cout<<Q[i];
cout<<"\t";
cout<<q<<"\t";
for(i=0;i< 4;i++)
cout<<M[i];
}
cout<<"\n\n---------------------------------------------------\n";
cout<<"\nTHE ANSWER IN BINARY IS : ";
for(i=0;i< 4;i++)
ans[i]=A[i];
for(i=0;i< 4;i++)
ans[i+4]=Q[i];
if(((a< 0)&&(b>0))||((a>0)&&(b< 0)))
{
for(i=0;i< 8;i++)
ans[i]=1-ans[i];
for(i=7;i>=0;i--)
{
x = ans[i];
ans[i]=c^x^C1[i];
if(((c==1)&&(x==1))||((x==1)&&(C1[i]==1))||((C1[i]==1)&&(c==1)))
c=1;
else
c=0;
}
}
for(i=0;i< 8;i++)
cout<<ans[i];
for(i=7;i>=0;i--)
{
s = s + (pow(2,z) * ans[i]);
z = z+1;
}
if(((a< 0)&&(b>0))||((a>0)&&(b< 0)))
cout<<"\nTHE ANSWER IN DECIMAL IS : <<s<<\n";
else
cout<<"\nTHE ANSWER IN DECIMAL IS :" <<s<<"\n";
getch();
}
OUTPUT

/********************** OUTPUT **********************


│-------------------------------------------------------------
│ ENTER VALUE OF A: 7
│ ENTER VALUE OF B: -3
│-------------------------------------------------------------

THE BINARY EQUIVALENT OF 7 IS : 0111

THE BINARY EQUIVALENT OF -3 IS : 1101

---------------------------------------------------
OPERATION A Q Q' M

INITIAL 0000 1101 0 0111


A:=A-M 1001 1101 0 0111
Shift 1100 1110 1 0111
A:=A+M 0011 1110 1 0111
Shift 0001 1111 0 0111
A:=A-M 1010 1111 0 0111
Shift 1101 0111 1 0111
Shift 1110 1011 1 0111

---------------------------------------------------

THE ANSWER IN BINARY IS : 00010101


THE ANSWER IN DECIMAL IS : -21
PRACTICAL NO:-7

//*************Restoring Division Algorithm***********

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>

int getsize(int x)
{
int c;
if(x<=1)
c = 2;
else if(x < 4)
c = 2;
else if(x< 8)
c = 3;
else if(x< 16)
c = 4;
else if(x< 32)
c = 5;
else if(x< 64)
c = 6;
else if(x< 128)
c = 7;
else if(x< 256)
c = 8;
else if(x< 512)
c = 9;
return c;
}

int max(int x,int y)


{
if(x< y)
return(y);
else
return(x);
}

void main()
{
int B,Q,Z,M,c,c1,e,f,g,h,i,j,x,y,ch,in,S,G,P;
int a[24],b[12],b1[12],q[12],carry=0,count=0,option;
long num;
do
{
clrscr();
cout<<"¦-----------------------------------------------¦\n";
cout<<"¦\t\tPROGRAM FOR DIVISION\t\t¦\n";
cout<<"¦-----------------------------------------------¦";
cout<<"\n\nENTER DIVIDEND\t: ";
cin>>Q;
y = getsize(Q);
cout<<"ENTER DIVISOR\t: ";
cin>>M;
x = getsize(M);
Z = max(x,y);
cout<<"\n\tTOTAL BITS CONSIDERED FOR RESULT => "<<2*Z+1;
cout<<"\n\tINITIALLY A IS RESET TO ZERO:";
for(i=0;i<=Z;i++)
{
a[i]=0;
cout<<a[i]<<" ";
}
for(i=Z;i>=0;i--)
{
b1[i] = b[i] = M%2;
M = M/2;
b1[i] = 1-b1[i];
}
carry = 1;
for(i=Z;i>=0;i--)
{
c1 = b1[i]^carry;
carry = b1[i]&&carry;
b1[i]=c1;
}
for(i=2*Z;i>Z;i--)
{
a[i] = Q%2;
Q = Q/2;
}
cout<<"\n\n\tDivisor\t\t(M)\t: ";
for(i=0;i<=Z;i++)
cout<<b[i]<<" ";
cout<<"\n\t2'C Divisor\t(M)\t: ";
for(i=0;i<=Z;i++)
cout<<b1[i]<<" ";
cout<<"\n\tDividend\t(Q)\t: ";
for(i=Z+1;i<=2*Z;i++)
cout<<a[i]<<" ";
cout<<"\n\n\tBITS CONSIDERED:C [ A ] [ M ]";
cout<<"\n\t\t\t";
for(i=0;i<=Z;i++)
cout<<a[i]<<" ";
cout<<" ";
for(i=Z+1;i<=2*Z;i++)
cout<<a[i]<<" ";
count = Z;
do{
for(i=0;i< 2*Z;i++)
a[i] = a[i+1];
cout<<"\n\nLeft Shift\t\t";
for(i=0;i<=Z;i++)
cout<<a[i]<<" ";
cout<<" ";
for(i=Z+1;i< 2*Z;i++)
cout<<a[i]<<" ";
carry=0;
for(i=Z;i>=0;i--)
{
S=a[i]^(b1[i]^carry);
G=a[i]&&b1[i];
P=a[i]^b1[i];
carry=G||(P&&carry);
a[i]=S ;
}
cout<<"\n A <- A-M \t\t";
for(i=0;i<=Z;i++)
cout<<a[i]<<" ";
cout<<" ";
for(i=Z+1;i< 2*Z;i++)
cout<<a[i]<<" ";
ch=a[0];
cout<<"\nBIT C:"<<ch;
switch (ch)
{
case 0: a[2*Z]=1;
cout<<" Q0<- 1\t\t";
for(i=0;i<=Z;i++)
cout<<a[i]<<" ";
cout<<" ";
for(i=Z+1;i<=2*Z;i++)
cout<<a[i]<<" ";
break;

case 1: a[2*Z]=0;
cout<<" Q0<- 0\t\t";
for(i=0;i<=Z;i++)
cout<<a[i]<<" ";
cout<<" ";
for(i=Z+1;i< 2*Z;i++)
cout<<a[i]<<" ";
carry=0;
for(i=Z;i>=0;i--)
{
S=a[i]^(b[i]^carry);
G=a[i]&&b[i];
P=a[i]^b[i];
carry=G||(P&&carry);
a[i]=S ;
}
cout<<"\nA<- A+M"<<" ";
cout<<"\t\t";
for(i=0;i<=Z;i++)
cout<<a[i]<<" ";
cout<<" ";
for(i=Z+1;i<=2*Z;i++)
cout<<a[i]<<" ";
break;
}
count--;
}while(count!=0);
num=0;
cout<<"\n";
cout<<"\n\t\t< < QUOTIENT IN BITS>> :";
for(i=Z+1;i<=2*Z;i++)
{
cout<<a[i]<<" ";
num=num+pow(2,2*Z-i)*a[i];
}
cout<<"\n\t\tOUOTIENT IN DECIMAL :"<<num;
num=0;
cout<<"\n\t\t< < REMAINDER IN BITS>>:";
for(i=0;i<=Z;i++)
{
cout<<a[i]<<" ";
num=num+pow(2,Z-i)*a[i];
}
cout<<"\n\t\tREMAINDER IN DECIMAL :"<<num;
getche();
cout<<"\n\tDO YOU WANT TO CONTINUE PRESS 0-ESC 1-CONT.:";
cin>>option;
}while(option!=0);
getch();
}

OUTPUT

/***************** OUTPUT ***********************

¦-----------------------------------------------¦
¦ PROGRAM FOR DIVISION ¦
¦-----------------------------------------------¦

ENTER DIVIDEND : 8
ENTER DIVISOR : 3

TOTAL BITS CONSIDERED FOR RESULT => 9


INITIALLY A IS RESET TO ZERO:0 0 0 0 0

Divisor (M) : 0 0 0 1 1
2'C Divisor (M) : 1 1 1 0 1
Dividend (Q) : 1 0 0 0

BITS CONSIDERED:C [ A ] [M]


00000 1000

Left Shift 00001 000


A< -A-M 11110 000
BIT Q:1 Q0< -0 11110 000
A< -A+M 00001 0000

Left Shift 00010 000


A< -A-M 11111 000
BIT Q:1 Q0< - 0 11111 000
A< -A+M 00010 0000

Left Shift 00100 000


A< -A-M 0 0 0 01 000
BIT Q:0 Q0< -1 00001 0001

Left Shift 00010 001


A< -A-M 11111 001
BIT Q:1 Q0< -0 11111 001
A< -A+M 00010 0010

< < QUOTIENT IN BITS>> :0 0 1 0


OUOTIENT IN DECIMAL : 2
< < REMAINDER IN BITS>>:00 0 0 0 1
REMAINDER IN DECIMAL :2
DO YOU WANT TO CONTINUE PRESS 0-ESC 1-CONT.:0
PRACTICAL NO:-8

//************ Look Ahead Carry Adder***********


#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<process.h>
#include<math.h>

int get1(int a)
{
char ch='B';
if(a==1)
ch='A';
do
{
cout<<"\n\tENTER VALUE OF "<<ch<<" ";
cin>>a;
if(a<=0)
cout<<"\n\t\t!INVALID NUMBER.ENTER VALUE (0< A)!";
}while(a<=0);
return(a);
}

int and(int a,int b)


{
int c;
if(a< b)
c=a;
else
c=b;
return (c);
}

int or(int a,int b)


{
int x;
if(a>b)
x=a;
else
x=b;
return x;
}

int exor(int a,int b)


{
int x;
if(a==b)
x=0;
else
x=1;
return x;
}

void add()
{
int i=7,A,B,a,b,cin,num;
int n1[8],n2[8],cg[8],cp[8],sum[8];
for(i=0;i<=7;i++)
{
n1[i]=0; // Num 1
n2[i]=0; // Num 2
cg[i]=0; // Gi
cp[i]=0; // Pi
sum[i]=0; // Sum
}
A = a = get1(1);
B = b = get1(0);
i=7;
do
{
n1[i]=a%2;
a=a/2;
n2[i]=b%2;
b=b/2;
i--;
}while((a!=0)||(b!=0));
i=0;
cout<<"\n\t\t Binary Form";
cout<<"\n\t A := "<<A<<" ";
for(i=0;i<=7;i++)
cout<<n1[i]<<" ";
cout<<"\n\t B := "<<B<<" ";
for(i=0;i<=7;i++)
cout<<n2[i]<<" ";
cin=0;
for(i=7;i>=0;i--)
{
sum[i]=exor(cin,exor(n1[i],n2[i])); // Sum Pi (+) Bi
cg[i]=and(n1[i],n2[i]); // Gi = Ai . Bi
cp[i]=or(n1[i],n2[i]); // Pi = Ai (+) Bi
cin=or(cg[i],and(cp[i],cin)); // Cin =Gi + PiCi
}
cout<<"\n\n\t\t SUM: ";
num=0;
for(i=0;i<=7;i++)
{
cout<<sum[i]<<" ";
num=num + (sum[i]*pow(2,7-i));
}
cout<<"\n\n\t\t SUM: "<<A<<"+"<<B<<"="<<num<<"\n";
cout<<"\t\t The Carry Is :" <<cin<<"\n\n";
}

void main()
{
int ch,a,b,c,d;
clrscr();
while(1)
{
M: cout<<"******** MENU FOR LOOK AHEAD CARRY ADDER ********";
cout<<"\n\t\t1.ADDITION OF TWO NUMBER";
cout<<"\n\t\t2.EXIT\n";
cout<<"*************************************************";
cout<<"\n\t\tEnter Your Option:";
cin>>ch;
switch(ch)
{
case 1:
add();
getch();
break;

case 2: exit(0);
break;

default:
clrscr();
cout<<"ERROR!!!!!!!!! INVALID ENTRY...\n";
cout<<"Back To Main Menu\n\n";
goto M;
}
}
}

OUTPUT

/*------------------ OUTPUT --------------------

******** MENU FOR LOOK AHEAD CARRY ADDER ********


1.ADDITION OF TWO NUMBER
2.EXIT
*************************************************
Enter Your Option:1
ENTER VALUE OF A:2

ENTER VALUE OF B:3

Binary Form
A=2:00000010
B=3:00000011

SUM: 0 0 0 0 0 1 0 1

SUM: 2 + 3= 5
The Carry Is : 0

******** MENU FOR LOOK AHEAD CARRY ADDER ********


1.ADDITION OF TWO NUMBER
2.EXIT
*************************************************
Enter Your Option:2 */

You might also like