Wednesday, October 21, 2009

ram simulation

http://pastebin.com/m736f3373

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






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

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

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

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

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

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

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