Danke Mario für die "BitSchubser"-Blumen!
Ich hatte leider die totale BitSchubserBlockade, was das Verständnis der von Harald ins Spiel gebrachten ParityErmittlungsVariante per Multiplikation betrifft.
Heute ist endlich der Groschen gefallen und es ist sooo simpel, dass man gar nicht drauf kommen kann, wenn man zu intensiv darüber nachdenkt.
Im Vorspiel wird durch die Schieberei um 1 und um 2 BitPositionen und die XODERei folgendes vorbereitet:
In jeder Tetrade (Gruppe von 4 Bit) wird im jeweils niederwertigsten Bit (der Tetrade) die OddParity der jeweils 4 Bit gebildet.
Durch die UND-Verknüpfung mit der HEX-Konstante 11111111 werden dann die höherwertigen (Müll-)Bits aller 8 Tetraden gelöscht.
Nun wird noch mit der HEX-Konstante 11111111 multipliziert. Das sorgt dafür, dass jede der 8 (OddParity-)Tetraden durch Schieben nach links genau 1mal in der höchstwertigen Tetrade (Bits 28 .. 31) landet und hier wird die Summe der 8 Tetraden gebildet. Die Multiplikation tut schliesslich nichts anderes, als Bits nach links zu schieben (d.h. mit einer 2er-Potenz zu multiplizieren) und die ZwischenErgebnisse zu ADDIEREN. Da bei beiden Faktoren zwischen den relevanten Bits jeweils 3 Bits 0 sind, kommt es dabei nicht zu störenden Überläufen von einer Tetrade zur nächst höherwertigen.
Die Multiplikation "ZÄHLT" also in der höchstwertigen Tetrade die Anzahl der Einsen aller 8
(OddParity-)Tetraden.
Ist diese Zahl in der höchstwertigen Tetrade ungerade, so liegt OddParity vor. D.h. es muss abschliessend nur noch Bit28 ausgewertet werden.
Langer Vorrede kurzer Sinn: ein Versuch, dies per ExcelTabelle zu erklären wäre noch viel umfangreicher geworden.