Hallo, mein Hirn ist grad blockiert: AVR, ich hab zwei Werte (x: 4 bit und y: 3 Bit) und ein bit parity (ich nenns mal z). Das muss ich prüfen. parity_even_bit(x) liefert mir parity von x parity_even_bit(y) liefert mir parity von y if (z == parity_even_bit(x) ^ parity_even_bit(y)) ??? oder if (z == parity_even_bit(x ^ y)) ??? grummel manchmal bin ich zu blöd für die einfachsten Dinge....
Gast
#2899889
Ist doch egal, wobei letzteres wegen nur eines Funktionsaufrufs schneller sein sollte - vorausgesetzt "^" soll der XOR Operator sein ;-)
Ja eh :-) Danke gehirn mit hochdosiertem Koffein wieder aufgetaut :-)
einfacher: ich nehme an parity_even_bit() liefert das Parity-Bit für gerade Parität, ist also 0 für ein Argument mit gerader Parität und 1 für ein Argument mit ungerader Parität. Dann wird
1 | |
zu true wenn die Verkettung von x und y gerade Parität hat. Denn dafür müssen x und y entweder beide gerade oder beide ungerade sein. Das Paritybit (für gerade Parität) für die Verkettung von x und y ist dann das Inverse davon:
1 | |
XL
nicht wirklich einfacher: ich hab (ich gestehe, ich hab das verschwiegen) nicht nur zwei Werte, sondern 3 bzw. 4. aber ich denke parity_even_bit(a ^ b ^ c) tut was ich will. Zumindest sagt mein programm nix gegenteiliges.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.