Frage zu C-Code Parität

Gast #5705998
Moin,
ich schreib morgen ne Klausur in Microprozessortechnik. Es geht um das 
bilden einer Parität.
An PortA sind 8 Eingänge angeschlossen und daraufhin soll eine gerade 
oder ungerade Parität ausgegeben werden.  Bisher mache ich das mit ner 
for schleife und einer Maske mit bitshift die dann die einzelnen 
Ausgänge durchgeht.
Nun ist meine Frage ob ich das PORTA Register auch direkt mit Modulo 2 
verrechnen kann, also:

if(PORTA%2)
   //ungerade
else
   //gerade


Geht das oder müsste ich erst, z.B. ne Variable beschreiben?

Int a;

a = PORTA;

if(a%2)
//ungerade
else
//gerade
Gast #5706030
Es gibt Verfahren, die ein wenig schneller sind, ... Eine Lookup-Tabelle 
oder (mehrfach) Exklusives Oder. Das Schieben in der Schleife ist aber 
OK (wenn es funktioniert).

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 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.