Gray Code in Binär Code umwandeln

Gast #1424235
Hallo,

würde gerne einen 4 Bit Gray Code in einen Binär Code umwandeln. Ich 
habe den Code über eine Gray-Code Scheibe in meinen Controler eingelesen 
und in einer 8 Bit Char Variable abgespeichert. Die oberen 4 Bit habe 
ich ausmaskiert und würde nun gerne die 4 Bit Gray über einen 
Algorythmus in 4 Bit binär umwandeln. Kann mir vielleicht jamand helfen?
Vielen Dank im Voraus.

Gruß, DAni
Gast
Hallo,

ich würde die umwandlung gerne mit einem allgorythmus machen. Ich könnte 
den binärwert auch über einen swich case zuweisen das will ich aber 
nicht.

das habe ich gefunden: Binärcode X1 --> Graycode: X4 = ((X1*2) XOR X1) / 
2

ich muss das wahrscheinlich nach x1 auflösen. hab aber hier auch schon 
probleme.

oder gibts vielleicht auch was einfacheres?
Nimm doch einfach nen Lookup-Table. Bei 4 Bit sind das nur 16 Einträge. 
Also 16 Byte belegter Flash-Speicher. Effizienter gehts wahrscheinlich 
nicht.
1
unsigned char gray2bin[16] = { ... }

Dekodierung geht dann einfach über
1
binaer = gray2bin[gray]
.

MfG
Marius
Gast
Hi,
Here the a 32 Bit and a 4 Bit variant. The 4 Bit variant needs only one 
CPU cycle more than a table based approach.

Jochen

static uint32_t
GrayDecodeU32(uint32_t to_decode) {
        uint32_t result = to_decode ^ (to_decode >> 16);
        result ^= result >> 8;
        result ^= result >> 4;
        result ^= result >> 2;
        result ^= result >> 1;
        return result;
}

uint8_t
GrayDecodeU4(uint8_t t) {
         t = t ^ (t >> 2);
         return t ^ (t >> 1);
}

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.