Forum: Mikrocontroller und Digitale Elektronik Gray Code in Binär umwandeln


von Rico S. (rassel)


Lesenswert?

Hallo zusammen

Habe ein Verständnissproblem mit einem Beispiel Code.

unsigned int graycodetobinary( unsigned int g )
{
    unsigned int i, m, b= g;
        for ( i= 1; (m= (b >> i)) != 0; i <<= 1 )
            b ^= m;
    return b;
}

Dieser wandelt Gray Code in Binär Code um und das funktioniert auch. Ich 
habe ein Problem damit zu verstehen was der Code genau macht.
Kann mir da jemand weiterhelfen? Oder gibt es bessere Möglichkeiten um 
einen n-stelligen Graycode in Binärcode umzuwandeln?

Vielen Dank schon im Voraus

von Svenska (Gast)


Lesenswert?

Ich würde den mal auf Papier malen und per Hand für 1-2 Beispiele 
ausrechnen. Dann sollte klar sein, was er tut und warum er funktioniert.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Rico S. schrieb:
> Oder gibt es bessere Möglichkeiten um
> einen n-stelligen Graycode in Binärcode umzuwandeln?

wenn er doch funktioniert, was für einen "besseren" Code brauchst du 
denn? Du meinst vermutlich einen (für dich) "verständlicheren"?

Ist denn dann z.B. das Sortierverfahren "Bubblesort" "besser" für dich 
als Quicksort, weil du bubblesort einfacher verstehst?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.