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

COA Lab Manual COMP

Embed Size (px)

Citation preview

Page 1: COA Lab Manual COMP

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

Page 2: COA Lab Manual COMP

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';

Page 3: COA Lab Manual COMP

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

Page 4: COA Lab Manual COMP

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);

Page 5: COA Lab Manual COMP

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

Page 6: COA Lab Manual COMP

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)) {

Page 7: COA Lab Manual COMP

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

Page 8: COA Lab Manual COMP

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;

Page 9: COA Lab Manual COMP

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; } }

Page 10: COA Lab Manual COMP

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);

Page 11: COA Lab Manual COMP

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 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 IN DECIMAL FORM: 672

Page 12: COA Lab Manual COMP

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; }

Page 13: COA Lab Manual COMP

} 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";

Page 14: COA Lab Manual COMP

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);

Page 15: COA Lab Manual COMP

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(); }

Page 16: COA Lab Manual COMP

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

Page 17: COA Lab Manual COMP

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);

Page 18: COA Lab Manual COMP

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--)

Page 19: COA Lab Manual COMP

{

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;

Page 20: COA Lab Manual COMP

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--)

{

Page 21: COA Lab Manual COMP

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;

Page 22: COA Lab Manual COMP

}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 ] 0 0 0 0 0 1 0 0 0 Left Shift 0 0 0 0 1 0 0 0 A< -A-M 1 1 1 1 0 0 0 0 BIT Q:1 Q0< -0 1 1 1 1 0 0 0 0 A< -A+M 0 0 0 0 1 0 0 0 0 Left Shift 0 0 0 1 0 0 0 0 A< -A-M 1 1 1 1 1 0 0 0 BIT Q:1 Q0< - 0 1 1 1 1 1 0 0 0 A< -A+M 0 0 0 1 0 0 0 0 0 Left Shift 0 0 1 0 0 0 0 0

Page 23: COA Lab Manual COMP

A< -A-M 0 0 0 01 0 0 0 BIT Q:0 Q0< -1 0 0 0 0 1 0 0 0 1 Left Shift 0 0 0 1 0 0 0 1 A< -A-M 1 1 1 1 1 0 0 1 BIT Q:1 Q0< -0 1 1 1 1 1 0 0 1 A< -A+M 0 0 0 1 0 0 0 1 0 < < 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

Page 24: COA Lab Manual COMP

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)

{

Page 25: COA Lab Manual COMP

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;

Page 26: COA Lab Manual COMP

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)

Page 27: COA Lab Manual COMP

{

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

Page 28: COA Lab Manual COMP

ENTER VALUE OF A:2 ENTER VALUE OF B:3 Binary Form A = 2 : 0 0 0 0 0 0 1 0 B = 3 : 0 0 0 0 0 0 1 1 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 */