Wednesday, October 21, 2009
ram simulation
#include
#include
#include
int d1[16],d2[16],d3[16],d4[16],ad[4],a,i;
void read();
void write();
void main()
{int ch;
clrscr();
cout<<"\t\t\t\tRAM simulation"; cout<<"\n\t\t------------------------------------------------"; do { cout<<"\nMENU\n0.write\n1.read\n2.exit\nenter a choice"; cin>>ch;
switch(ch)
{
case 0:write();
break;
case 1:read();
break;
case 2:break;
default:cout<<"invalid choice"; } }while(ch!=2); } void read() { cout<<"enter the addrres"; for(i=0;i<=3;i++) cin>>ad[i];
a=0;
int mult=0;
for(i=3;i>=0;i--)
{
a=a+(ad[i]*pow(2,mult));
mult++;
}
cout<<"the data at the give address is:"; cout<>ad[i];
a=0;
int mult=0;
for(i=3;i>=0;i--)
{
a=a+(ad[i]*pow(2,mult));
mult++;
}
cout<<"enter the data:"; cin>>d4[a];
cin>>d3[a];
cin>>d2[a];
cin>>d1[a];
}
#include
#include
int d1[16],d2[16],d3[16],d4[16],ad[4],a,i;
void read();
void write();
void main()
{int ch;
clrscr();
cout<<"\t\t\t\tRAM simulation"; cout<<"\n\t\t------------------------------------------------"; do { cout<<"\nMENU\n0.write\n1.read\n2.exit\nenter a choice"; cin>>ch;
switch(ch)
{
case 0:write();
break;
case 1:read();
break;
case 2:break;
default:cout<<"invalid choice"; } }while(ch!=2); } void read() { cout<<"enter the addrres"; for(i=0;i<=3;i++) cin>>ad[i];
a=0;
int mult=0;
for(i=3;i>=0;i--)
{
a=a+(ad[i]*pow(2,mult));
mult++;
}
cout<<"the data at the give address is:"; cout<
a=0;
int mult=0;
for(i=3;i>=0;i--)
{
a=a+(ad[i]*pow(2,mult));
mult++;
}
cout<<"enter the data:"; cin>>d4[a];
cin>>d3[a];
cin>>d2[a];
cin>>d1[a];
}
Tuesday, October 20, 2009
booths(for negative)
#include<iostream>
#include<conio.h>
using namespace std;
void getdata();
void binary();
void display();
void putdata();
void reset();
void add();
void rshift();
void subtract();
int a,b,p[5],q[5],ac[5],i,q1,n,j,m[5],;
int main()
{
int ch,count;
L1:getdata();
binary();
putdata();
q1=0;
cout<<"\n";
display();
for(count=0;count<=4;count++)
{
cout<<endl;
if(q[4]==1&&q1==0)
{
subtract();
cout<<"\n";
display();
cout<<"\tAC=AC-M";
}
else if(q[4]==0&&q1==1)
{add();
cout<<"\n";
display();
cout<<"\tAC=AC+M";
}
rshift();
cout<<"\n";
display();
cout<<"\tRightshift";
cout<<endl;
}
n=0;
int mult=1;
for(i=4;i>=0;i--)
{
n=n+(q[i]*mult);
mult=mult*2;
}
for(i=4;i>=0;i--)
{
n=n+(ac[i]*mult);
mult=mult*2;
}
if(ac[0]==1)
n=n-1024;
cout<<"\nthe answer:"<<n;
cout<<"\ndo you wish to continue:\n1.yes\n2.no:";
cin>>ch;
if(ch==1)
goto L1;
}
void getdata()
{
cout<<"enter the 1st no.:";
cin>>a;
cout<<"enteer the 2nd no:";
cin>>b;
//cout<<"getdata";
}
void binary()
{
int t1,t2;
t1=a;
t2=b;
int t3=t1;
for(i=0;i<=4;i++)
{
p[i]=0;
q[i]=0;
ac[i]=0;
}
if(t1<0)
{t1=t1*-1;
t1=16-t1;
p[0]=1;}
if(t2<0)
{t2=t2*-1;
t3=t3*-1;
t2=16-t2;
q[0]=1;
t3=16-t3;}
i=4;
do
{
p[i]=t1%2;
t1=t1/2;
m[i]=p[i];
i--;
}while(t1>0);
i=4;
do
{
q[i]=t2%2;
t2=t2/2;
i--;
}while(t2>0);
t3=16-t3;
i=4;
do
{
m[i]=t3%2;
t3=t3/2;
i--;
}while(t3>0);
if(a<0)
m[0]=0;
//cout<<"binary";
}
void putdata()
{
cout<<"\nthe 1st no. is:"<<a<<":";
for(i=0;i<=4;i++)
cout<<p[i];
cout<<"\nthe 2nd no. is:"<<b<<":";
for(i=0;i<=4;i++)
cout<<q[i];
//cout<<"putdata";
}
void subtract()
{
int cr=0;
for(i=4;i>=0;i--)
{
if(ac[i]==0&&m[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&m[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&m[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
//cout<<"subtract";
}
void add()
{
int cr=0;
for(i=4;i>=0;i--)
{
if(ac[i]==0&&p[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&p[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&p[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
//cout<<"add";
}
void rshift()
{
q1=q[4];
for(i=3;i>=0;i--)
q[i+1]=q[i];
q[0]=ac[4];
for(i=3;i>=0;i--)
ac[i+1]=ac[i];
ac[0]=ac[1];
// cout<<"rshift";
}
void display()
{
for(j=0;j<=4;j++)
cout<<ac[j];
cout<<"\t";
for(j=0;j<=4;j++)
cout<<q[j];
cout<<"\t"<<q1;
// cout<<"display:";
}
#include<conio.h>
using namespace std;
void getdata();
void binary();
void display();
void putdata();
void reset();
void add();
void rshift();
void subtract();
int a,b,p[5],q[5],ac[5],i,q1,n,j,m[5],;
int main()
{
int ch,count;
L1:getdata();
binary();
putdata();
q1=0;
cout<<"\n";
display();
for(count=0;count<=4;count++)
{
cout<<endl;
if(q[4]==1&&q1==0)
{
subtract();
cout<<"\n";
display();
cout<<"\tAC=AC-M";
}
else if(q[4]==0&&q1==1)
{add();
cout<<"\n";
display();
cout<<"\tAC=AC+M";
}
rshift();
cout<<"\n";
display();
cout<<"\tRightshift";
cout<<endl;
}
n=0;
int mult=1;
for(i=4;i>=0;i--)
{
n=n+(q[i]*mult);
mult=mult*2;
}
for(i=4;i>=0;i--)
{
n=n+(ac[i]*mult);
mult=mult*2;
}
if(ac[0]==1)
n=n-1024;
cout<<"\nthe answer:"<<n;
cout<<"\ndo you wish to continue:\n1.yes\n2.no:";
cin>>ch;
if(ch==1)
goto L1;
}
void getdata()
{
cout<<"enter the 1st no.:";
cin>>a;
cout<<"enteer the 2nd no:";
cin>>b;
//cout<<"getdata";
}
void binary()
{
int t1,t2;
t1=a;
t2=b;
int t3=t1;
for(i=0;i<=4;i++)
{
p[i]=0;
q[i]=0;
ac[i]=0;
}
if(t1<0)
{t1=t1*-1;
t1=16-t1;
p[0]=1;}
if(t2<0)
{t2=t2*-1;
t3=t3*-1;
t2=16-t2;
q[0]=1;
t3=16-t3;}
i=4;
do
{
p[i]=t1%2;
t1=t1/2;
m[i]=p[i];
i--;
}while(t1>0);
i=4;
do
{
q[i]=t2%2;
t2=t2/2;
i--;
}while(t2>0);
t3=16-t3;
i=4;
do
{
m[i]=t3%2;
t3=t3/2;
i--;
}while(t3>0);
if(a<0)
m[0]=0;
//cout<<"binary";
}
void putdata()
{
cout<<"\nthe 1st no. is:"<<a<<":";
for(i=0;i<=4;i++)
cout<<p[i];
cout<<"\nthe 2nd no. is:"<<b<<":";
for(i=0;i<=4;i++)
cout<<q[i];
//cout<<"putdata";
}
void subtract()
{
int cr=0;
for(i=4;i>=0;i--)
{
if(ac[i]==0&&m[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&m[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&m[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
//cout<<"subtract";
}
void add()
{
int cr=0;
for(i=4;i>=0;i--)
{
if(ac[i]==0&&p[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&p[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&p[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
//cout<<"add";
}
void rshift()
{
q1=q[4];
for(i=3;i>=0;i--)
q[i+1]=q[i];
q[0]=ac[4];
for(i=3;i>=0;i--)
ac[i+1]=ac[i];
ac[0]=ac[1];
// cout<<"rshift";
}
void display()
{
for(j=0;j<=4;j++)
cout<<ac[j];
cout<<"\t";
for(j=0;j<=4;j++)
cout<<q[j];
cout<<"\t"<<q1;
// cout<<"display:";
}
booths(modified,incomplete)
#include<iostream>
#include<conio.h>
using namespace std;
void getdata();
void binary();
void display();
void putdata();
void reset();
void add();
void rshift();
void subtract();
int a,b,p[5],q[5],ac[5],i,q1,n,j,m[5],;
int main()
{
int ch,count;
L1:getdata();
binary();
putdata();
q1=0;
cout<<"\n";
display();
for(count=0;count<=4;count++)
{
cout<<endl;
if(q[3]==1&&q1==0)
{
subtract();
cout<<"\n";
display();
cout<<"\tAC=AC-M";
}
else if(q[3]==0&&q1==1)
{add();
cout<<"\n";
display();
cout<<"\tAC=AC+M";
}
rshift();
cout<<"\n";
display();
cout<<"\tRightshift";
cout<<endl;
}
n=0;
int mult=1;
for(i=4;i>=0;i--)
{
n=n+(q[i]*mult);
mult=mult*2;
}
for(i=4;i>=0;i--)
{
n=n+(ac[i]*mult);
mult=mult*2;
}
if(ac[0]==1)
n=n-512;
cout<<"\nthe answer:"<<n;
cout<<"\ndo you wish to continue:\n1.yes\n2.no:";
cin>>ch;
if(ch==1)
goto L1;
}
void getdata()
{
cout<<"enter the 1st no.:";
cin>>a;
cout<<"enteer the 2nd no:";
cin>>b;
}
void binary()
{
int t1,t2;
t1=a;
t2=b;
int t3=t2;
if(t1<0)
{t1=t1*-1;
t1=16-t1;
p[0]=1;}
if(t2<0)
{t2=t2*-1;
t3=t3*-1;
t2=16-t2;
q[0]=1;
t3=16-t3;}
for(i=1;i<=4;i++)
{
p[i]=0;
q[i]=0;
ac[i]=0;
}
i=4;
do
{
p[i]=t1%2;
t1=t1/2;
m[i]=p[i];
i--;
}while(t1>0);
i=4;
do
{
q[i]=t2%2;
t2=t2/2;
i--;
}while(t2>0);
a=16-a;
i=4;
do
{
m[i]=t3%2;
t3=t3/2;
i--;
}while(a>0);
}
void putdata()
{
cout<<"\nthe 1st no. is:"<<a<<":";
for(i=0;i<=4;i++)
cout<<p[i];
cout<<"\nthe 2nd no. is:"<<b<<":";
for(i=0;i<=4;i++)
cout<<q[i];
}
void subtract()
{
int cr=0;
for(i=4;i>=0;i--)
{
if(ac[i]==0&&m[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&m[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&m[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
}
void add()
{
int cr=0;
for(i=4;i>=0;i--)
{
if(ac[i]==0&&p[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&p[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&p[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
}
void rshift()
{
q1=q[4];
for(i=3;i>=0;i--)
q[i+1]=q[i];
q[0]=ac[4];
for(i=3;i>=0;i--)
ac[i+1]=ac[i];
ac[0]=q1;
}
void display()
{
for(j=0;j<=4;j++)
cout<<ac[j];
cout<<"\t";
for(j=0;j<=4;j++)
cout<<q[j];
cout<<"\t"<<q1;
}
#include<conio.h>
using namespace std;
void getdata();
void binary();
void display();
void putdata();
void reset();
void add();
void rshift();
void subtract();
int a,b,p[5],q[5],ac[5],i,q1,n,j,m[5],;
int main()
{
int ch,count;
L1:getdata();
binary();
putdata();
q1=0;
cout<<"\n";
display();
for(count=0;count<=4;count++)
{
cout<<endl;
if(q[3]==1&&q1==0)
{
subtract();
cout<<"\n";
display();
cout<<"\tAC=AC-M";
}
else if(q[3]==0&&q1==1)
{add();
cout<<"\n";
display();
cout<<"\tAC=AC+M";
}
rshift();
cout<<"\n";
display();
cout<<"\tRightshift";
cout<<endl;
}
n=0;
int mult=1;
for(i=4;i>=0;i--)
{
n=n+(q[i]*mult);
mult=mult*2;
}
for(i=4;i>=0;i--)
{
n=n+(ac[i]*mult);
mult=mult*2;
}
if(ac[0]==1)
n=n-512;
cout<<"\nthe answer:"<<n;
cout<<"\ndo you wish to continue:\n1.yes\n2.no:";
cin>>ch;
if(ch==1)
goto L1;
}
void getdata()
{
cout<<"enter the 1st no.:";
cin>>a;
cout<<"enteer the 2nd no:";
cin>>b;
}
void binary()
{
int t1,t2;
t1=a;
t2=b;
int t3=t2;
if(t1<0)
{t1=t1*-1;
t1=16-t1;
p[0]=1;}
if(t2<0)
{t2=t2*-1;
t3=t3*-1;
t2=16-t2;
q[0]=1;
t3=16-t3;}
for(i=1;i<=4;i++)
{
p[i]=0;
q[i]=0;
ac[i]=0;
}
i=4;
do
{
p[i]=t1%2;
t1=t1/2;
m[i]=p[i];
i--;
}while(t1>0);
i=4;
do
{
q[i]=t2%2;
t2=t2/2;
i--;
}while(t2>0);
a=16-a;
i=4;
do
{
m[i]=t3%2;
t3=t3/2;
i--;
}while(a>0);
}
void putdata()
{
cout<<"\nthe 1st no. is:"<<a<<":";
for(i=0;i<=4;i++)
cout<<p[i];
cout<<"\nthe 2nd no. is:"<<b<<":";
for(i=0;i<=4;i++)
cout<<q[i];
}
void subtract()
{
int cr=0;
for(i=4;i>=0;i--)
{
if(ac[i]==0&&m[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&m[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&m[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
}
void add()
{
int cr=0;
for(i=4;i>=0;i--)
{
if(ac[i]==0&&p[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&p[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&p[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
}
void rshift()
{
q1=q[4];
for(i=3;i>=0;i--)
q[i+1]=q[i];
q[0]=ac[4];
for(i=3;i>=0;i--)
ac[i+1]=ac[i];
ac[0]=q1;
}
void display()
{
for(j=0;j<=4;j++)
cout<<ac[j];
cout<<"\t";
for(j=0;j<=4;j++)
cout<<q[j];
cout<<"\t"<<q1;
}
add shift(incomplete)
include<iostream>
#include<conio.h>
using namespace std;
int a[4],multiplicand[4],i,carry=0,sum;
void display();
void getdata()
{
cout<<"enter tbinary multiplicand:";
for(i=0;i<4;i++)
cin>>multiplicand[i];
cout<<"enter mulplier:";
for(i=5;i<9;i++)
cin>>a[i];
for(i=0;i<5;i++)
a[i]=0;
cout<<"intial stat\n multiplier:";
for(i=1;i<9;i++)
cout<<a[i];
cout<<"\nmultiplicand:0000";
for(i=0;i<4;i++)
cout<<" "<<multiplicand[i];
}
int add(int p1,int p2)
{
if(p1==1&&p2==1)
{
if(carry==0)
for(i=8;i>0;i--)
a[i]=a[i-1];
cout<<"\n\n";
a[0]=0;
display();
}
}
void display()
{
for(i=0;i<9;i++)
cout<<" "<<a[i];
}
int main()
{
getdata();
add();
display();
getch();
return 0;
}
#include<conio.h>
using namespace std;
int a[4],multiplicand[4],i,carry=0,sum;
void display();
void getdata()
{
cout<<"enter tbinary multiplicand:";
for(i=0;i<4;i++)
cin>>multiplicand[i];
cout<<"enter mulplier:";
for(i=5;i<9;i++)
cin>>a[i];
for(i=0;i<5;i++)
a[i]=0;
cout<<"intial stat\n multiplier:";
for(i=1;i<9;i++)
cout<<a[i];
cout<<"\nmultiplicand:0000";
for(i=0;i<4;i++)
cout<<" "<<multiplicand[i];
}
int add(int p1,int p2)
{
if(p1==1&&p2==1)
{
if(carry==0)
for(i=8;i>0;i--)
a[i]=a[i-1];
cout<<"\n\n";
a[0]=0;
display();
}
}
void display()
{
for(i=0;i<9;i++)
cout<<" "<<a[i];
}
int main()
{
getdata();
add();
display();
getch();
return 0;
}
Sunday, October 18, 2009
Representations
#include<iostream>
#include<conio.h>
using namespace std;
void intrep(int);
void smag(int);
void comp2(int);
int main()
{
int n,choice;
L1:cout<<"enter a number";
cin>>n;
cout<<"\nInteger Representation:";
intrep(n);
cout<<"\nsign magnitude:";
smag(n);
cout<<"\n2's compliment";
comp2(n);
cout<<"\nDo you wish to continue:\n1.yesn2.no\nenter a choice:";
cin>>choice;
if(choice==1)
{
goto L1;
}
return 0;
}
void intrep(int n)
{
int r[8];
int i=7;
if(n>=0)
{
while(n!=0)
{
r[i]=n%2;
n=n/2;
i--;
}
while(i>=0)
{
r[i]=0;
i--;
}
for(i=0;i<=7;i++)
{
cout<<r[i];
}
}
else
{
cout<<"No integer representation";
}
}
void smag(int n)
{
if(n>=0)
{
intrep(n);
}
else
{
n=n*-1;
int r[8];
int i=7;
while(n!=0)
{
r[i]=n%2;
n=n/2;
i--;
}
while(i>=0)
{
r[i]=0;
i--;
}
r[0]=1;
for(i=0;i<=7;i++)
{
cout<<r[i];
}
}
}
void comp2(int n)
{
if(n>=0)
{
intrep(n);
}
else
{
n=16-(n*-1);
intrep(n);
}
}
#include<conio.h>
using namespace std;
void intrep(int);
void smag(int);
void comp2(int);
int main()
{
int n,choice;
L1:cout<<"enter a number";
cin>>n;
cout<<"\nInteger Representation:";
intrep(n);
cout<<"\nsign magnitude:";
smag(n);
cout<<"\n2's compliment";
comp2(n);
cout<<"\nDo you wish to continue:\n1.yesn2.no\nenter a choice:";
cin>>choice;
if(choice==1)
{
goto L1;
}
return 0;
}
void intrep(int n)
{
int r[8];
int i=7;
if(n>=0)
{
while(n!=0)
{
r[i]=n%2;
n=n/2;
i--;
}
while(i>=0)
{
r[i]=0;
i--;
}
for(i=0;i<=7;i++)
{
cout<<r[i];
}
}
else
{
cout<<"No integer representation";
}
}
void smag(int n)
{
if(n>=0)
{
intrep(n);
}
else
{
n=n*-1;
int r[8];
int i=7;
while(n!=0)
{
r[i]=n%2;
n=n/2;
i--;
}
while(i>=0)
{
r[i]=0;
i--;
}
r[0]=1;
for(i=0;i<=7;i++)
{
cout<<r[i];
}
}
}
void comp2(int n)
{
if(n>=0)
{
intrep(n);
}
else
{
n=16-(n*-1);
intrep(n);
}
}
Binary to Decimal
#include<iostream>
#include<cmath>
using namespace std;
class Binary
{
int a[50],size,i,deg;
public:void setdata(void);
void cal(void);
};
void Binary::setdata(void)
{
cout<<"enter size of the binary no.:";
cin>>size;
if(size<=8)
{
cout<<"enter the binary no.";
for(i=0;i<=size-1;i++)
cin>>a[i];
}
else{
cout<<"invalid input";
}
}
void Binary::cal(void)
{
double s=0;
deg=0;
for(i=size-1;i>=0;i--)
{
s=s+a[i]*pow(2.0,deg);
deg++;
}
cout<<"\n\nthe decimal number is:"<<s;
}
int main()
{
int choice;
Binary b;
L1:b.setdata();
b.cal();
if(choice==1)
goto L1;
return 0;
}
#include<cmath>
using namespace std;
class Binary
{
int a[50],size,i,deg;
public:void setdata(void);
void cal(void);
};
void Binary::setdata(void)
{
cout<<"enter size of the binary no.:";
cin>>size;
if(size<=8)
{
cout<<"enter the binary no.";
for(i=0;i<=size-1;i++)
cin>>a[i];
}
else{
cout<<"invalid input";
}
}
void Binary::cal(void)
{
double s=0;
deg=0;
for(i=size-1;i>=0;i--)
{
s=s+a[i]*pow(2.0,deg);
deg++;
}
cout<<"\n\nthe decimal number is:"<<s;
}
int main()
{
int choice;
Binary b;
L1:b.setdata();
b.cal();
if(choice==1)
goto L1;
return 0;
}
Thursday, October 15, 2009
3 bit adder
#include<iostream>
using namespace std;
class addition
{
int p[8],q[8],r[8],cr,i,n;
public:
void getdata();
void add();
void display();
};
void addition::getdata()
{
cout<<"enter the 1st binary no.:";
for(i=0;i<=7;i++)
cin>>p[i];
cout<<"enter the 2nd binary no.:";
for(i=0;i<=7;i++)
cin>>q[i];
cout<<"enter the 3rd binary no.:";
for(i=0;i<=7;i++)
cin>>r[i];
}
void addition::add()
{
cr=0;
for(i=7;i>=0;i--)
{
if(p[i]==0&&q[i]==0&&cr==0)
{
q[i]=0;
cr=0;
}
else if(p[i]==0&&q[i]==0&&cr==1)
{
q[i]=1;
cr=0;
}
else if(p[i]==0&&q[i]==1&&cr==0)
{
q[i]=1;
cr=0;
}
else if(p[i]==0&&q[i]==1&&cr==1)
{
q[i]=0;
cr=1;
}
else if(p[i]==1&&q[i]==0&&cr==0)
{
q[i]=1;
cr=0;
}
else if(p[i]==1&&q[i]==0&&cr==1)
{
q[i]=0;
cr=1;
}
else if(p[i]==1&&q[i]==1&&cr==0)
{
q[i]=0;
cr=1;
}
else if(p[i]==1&&q[i]==1&&cr==1)
{
q[i]=1;
cr=1;
}
}
for(i=7;i>=0;i--)
{
if(r[i]==0&&q[i]==0&&cr==0)
{
r[i]=0;
cr=0;
}
else if(r[i]==0&&q[i]==0&&cr==1)
{
r[i]=1;
cr=0;
}
else if(r[i]==0&&q[i]==1&&cr==0)
{
r[i]=1;
cr=0;
}
else if(r[i]==0&&q[i]==1&&cr==1)
{
r[i]=0;
cr=1;
}
else if(r[i]==1&&q[i]==0&&cr==0)
{
r[i]=1;
cr=0;
}
else if(r[i]==1&&q[i]==0&&cr==1)
{
r[i]=0;
cr=1;
}
else if(r[i]==1&&q[i]==1&&cr==0)
{
p[i]=0;
cr=1;
}
else if(r[i]==1&&q[i]==1&&cr==1)
{
r[i]=1;
cr=1;
}
}
}
void addition::display()
{
cout<<"the additon is:";
for(i=0;i<=7;i++)
cout<<r[i];
}
int main()
{int ch;
addition a;
L1:a.getdata();
a.add();
a.display();
cout<<"\ndo you wish to continue:\n1.yes\n2.no\nenter achoice:";
cin>>ch;
if(ch==1)
goto L1;
}
using namespace std;
class addition
{
int p[8],q[8],r[8],cr,i,n;
public:
void getdata();
void add();
void display();
};
void addition::getdata()
{
cout<<"enter the 1st binary no.:";
for(i=0;i<=7;i++)
cin>>p[i];
cout<<"enter the 2nd binary no.:";
for(i=0;i<=7;i++)
cin>>q[i];
cout<<"enter the 3rd binary no.:";
for(i=0;i<=7;i++)
cin>>r[i];
}
void addition::add()
{
cr=0;
for(i=7;i>=0;i--)
{
if(p[i]==0&&q[i]==0&&cr==0)
{
q[i]=0;
cr=0;
}
else if(p[i]==0&&q[i]==0&&cr==1)
{
q[i]=1;
cr=0;
}
else if(p[i]==0&&q[i]==1&&cr==0)
{
q[i]=1;
cr=0;
}
else if(p[i]==0&&q[i]==1&&cr==1)
{
q[i]=0;
cr=1;
}
else if(p[i]==1&&q[i]==0&&cr==0)
{
q[i]=1;
cr=0;
}
else if(p[i]==1&&q[i]==0&&cr==1)
{
q[i]=0;
cr=1;
}
else if(p[i]==1&&q[i]==1&&cr==0)
{
q[i]=0;
cr=1;
}
else if(p[i]==1&&q[i]==1&&cr==1)
{
q[i]=1;
cr=1;
}
}
for(i=7;i>=0;i--)
{
if(r[i]==0&&q[i]==0&&cr==0)
{
r[i]=0;
cr=0;
}
else if(r[i]==0&&q[i]==0&&cr==1)
{
r[i]=1;
cr=0;
}
else if(r[i]==0&&q[i]==1&&cr==0)
{
r[i]=1;
cr=0;
}
else if(r[i]==0&&q[i]==1&&cr==1)
{
r[i]=0;
cr=1;
}
else if(r[i]==1&&q[i]==0&&cr==0)
{
r[i]=1;
cr=0;
}
else if(r[i]==1&&q[i]==0&&cr==1)
{
r[i]=0;
cr=1;
}
else if(r[i]==1&&q[i]==1&&cr==0)
{
p[i]=0;
cr=1;
}
else if(r[i]==1&&q[i]==1&&cr==1)
{
r[i]=1;
cr=1;
}
}
}
void addition::display()
{
cout<<"the additon is:";
for(i=0;i<=7;i++)
cout<<r[i];
}
int main()
{int ch;
addition a;
L1:a.getdata();
a.add();
a.display();
cout<<"\ndo you wish to continue:\n1.yes\n2.no\nenter achoice:";
cin>>ch;
if(ch==1)
goto L1;
}
Wednesday, October 7, 2009
Booth's Algorithm(4bit positive number)
#include<iostream>
#include<conio.h>
using namespace std;
void getdata();
void binary();
void display();
void putdata();
void reset();
void add();
void rshift();
void subtract();
int a,b,p[4],q[4],ac[4],i,q1,n,j,m[4];
int main()
{
int ch,count;
L1:getdata();
binary();
putdata();
q1=0;
cout<<"\n";
display();
for(count=0;count<=3;count++)
{
cout<<endl;
if(q[3]==1&&q1==0)
{
subtract();
cout<<"\n";
display();
cout<<"\tAC=AC-M";
}
else if(q[3]==0&&q1==1)
{add();
cout<<"\n";
display();
cout<<"\tAC=AC+M";
}
rshift();
cout<<"\n";
display();
cout<<"\tRightshift";
cout<<endl;
}
n=0;
int mult=1;
for(i=3;i>=0;i--)
{
n=n+(q[i]*mult);
mult=mult*2;
}
for(i=3;i>=0;i--)
{
n=n+(ac[i]*mult);
mult=mult*2;
}
cout<<"\nthe answer:"<<n;
cout<<"\ndo you wish to continue:\n1.yes\n2.no:";
cin>>ch;
if(ch==1)
goto L1;
}
void getdata()
{
cout<<"enter the 1st no.:";
cin>>a;
cout<<"enteer the 2nd no:";
cin>>b;
}
void binary()
{
int t1,t2;
t1=a;
t2=b;
for(i=0;i<=3;i++)
{
p[i]=0;
q[i]=0;
ac[i]=0;
}
i=3;
do
{
p[i]=t1%2;
t1=t1/2;
m[i]=p[i];
i--;
}while(t1>0);
i=3;
do
{
q[i]=t2%2;
t2=t2/2;
i--;
}while(t2>0);
a=256-a;
i=3;
do
{
m[i]=a%2;
a=a/2;
i--;
}while(a>0);
}
void putdata()
{
cout<<"\nthe 1st no. is:"<<a<<":";
for(i=0;i<=3;i++)
cout<<p[i];
cout<<"\nthe 2nd no. is:"<<b<<":";
for(i=0;i<=3;i++)
cout<<q[i];
}
void subtract()
{
int cr=0;
for(i=3;i>=0;i--)
{
if(ac[i]==0&&m[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&m[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&m[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
}
void add()
{
int cr=0;
for(i=3;i>=0;i--)
{
if(ac[i]==0&&p[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&p[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&p[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
}
void rshift()
{
q1=q[3];
for(i=2;i>=0;i--)
q[i+1]=q[i];
q[0]=ac[3];
for(i=2;i>=0;i--)
ac[i+1]=ac[i];
ac[0]=q1;
}
void display()
{
for(j=0;j<=3;j++)
cout<<ac[j];
cout<<"\t";
for(j=0;j<=3;j++)
cout<<q[j];
cout<<"\t"<<q1;
}
#include<conio.h>
using namespace std;
void getdata();
void binary();
void display();
void putdata();
void reset();
void add();
void rshift();
void subtract();
int a,b,p[4],q[4],ac[4],i,q1,n,j,m[4];
int main()
{
int ch,count;
L1:getdata();
binary();
putdata();
q1=0;
cout<<"\n";
display();
for(count=0;count<=3;count++)
{
cout<<endl;
if(q[3]==1&&q1==0)
{
subtract();
cout<<"\n";
display();
cout<<"\tAC=AC-M";
}
else if(q[3]==0&&q1==1)
{add();
cout<<"\n";
display();
cout<<"\tAC=AC+M";
}
rshift();
cout<<"\n";
display();
cout<<"\tRightshift";
cout<<endl;
}
n=0;
int mult=1;
for(i=3;i>=0;i--)
{
n=n+(q[i]*mult);
mult=mult*2;
}
for(i=3;i>=0;i--)
{
n=n+(ac[i]*mult);
mult=mult*2;
}
cout<<"\nthe answer:"<<n;
cout<<"\ndo you wish to continue:\n1.yes\n2.no:";
cin>>ch;
if(ch==1)
goto L1;
}
void getdata()
{
cout<<"enter the 1st no.:";
cin>>a;
cout<<"enteer the 2nd no:";
cin>>b;
}
void binary()
{
int t1,t2;
t1=a;
t2=b;
for(i=0;i<=3;i++)
{
p[i]=0;
q[i]=0;
ac[i]=0;
}
i=3;
do
{
p[i]=t1%2;
t1=t1/2;
m[i]=p[i];
i--;
}while(t1>0);
i=3;
do
{
q[i]=t2%2;
t2=t2/2;
i--;
}while(t2>0);
a=256-a;
i=3;
do
{
m[i]=a%2;
a=a/2;
i--;
}while(a>0);
}
void putdata()
{
cout<<"\nthe 1st no. is:"<<a<<":";
for(i=0;i<=3;i++)
cout<<p[i];
cout<<"\nthe 2nd no. is:"<<b<<":";
for(i=0;i<=3;i++)
cout<<q[i];
}
void subtract()
{
int cr=0;
for(i=3;i>=0;i--)
{
if(ac[i]==0&&m[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&m[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&m[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&m[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&m[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
}
void add()
{
int cr=0;
for(i=3;i>=0;i--)
{
if(ac[i]==0&&p[i]==0&&cr==0)
{
ac[i]=0;
cr=0;
}
else if(ac[i]==0&&p[i]==0&&cr==1)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==0&&p[i]==1&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==0&&cr==0)
{
ac[i]=1;
cr=0;
}
else if(ac[i]==1&&p[i]==0&&cr==1)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==0)
{
ac[i]=0;
cr=1;
}
else if(ac[i]==1&&p[i]==1&&cr==1)
{
ac[i]=1;
cr=1;
}
}
}
void rshift()
{
q1=q[3];
for(i=2;i>=0;i--)
q[i+1]=q[i];
q[0]=ac[3];
for(i=2;i>=0;i--)
ac[i+1]=ac[i];
ac[0]=q1;
}
void display()
{
for(j=0;j<=3;j++)
cout<<ac[j];
cout<<"\t";
for(j=0;j<=3;j++)
cout<<q[j];
cout<<"\t"<<q1;
}
Subscribe to:
Posts (Atom)