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