Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void Gray(int n)
- {
- int aux,i,r,j,q,nrbin[100],bin[100],numaringray[100];
- aux=n;
- i=0;
- while(aux>0)
- {
- r=aux%2;
- aux=aux/2;
- i++;
- bin[i]=r;
- }
- q=0;
- for(j=4;j>=1;j--)
- {
- if(i<j)
- {
- q++;
- nrbin[q]=0;
- }
- else
- {
- q++;
- nrbin[q]=bin[j];
- i--;
- }
- }
- ///Pana aici am facut transformarea cifrei in 8421(BCD)
- numaringray[1]=nrbin[1];
- for(i=2;i<=4;i++)
- {
- if(nrbin[i-1]+nrbin[i]==2)
- numaringray[i]=0;
- else
- numaringray[i]=nrbin[i]+nrbin[i-1];
- }
- for(i=1;i<=4;i++)
- cout<<numaringray[i];
- ///Ulterior am transformat numarul din BCD in Gray
- }
- int x,r,aux,uc;
- int main()
- {
- cin>>x;
- r=0;
- aux=x;
- ///Vom calcula rasturnatul numarului pentru a putea lua cifrele la rand de la stanga la dreapta si sa le transformam in gray
- while(aux>0)
- {
- uc=aux%10;
- r=r*10+uc;
- aux=aux/10;
- }
- while(r>0)
- {
- uc=r%10;
- Gray(uc);
- cout<<" ";
- r=r/10;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement