#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:";
}
Tuesday, October 20, 2009
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment