quizfrage: was macht diese funktion?
-
int was_mache_ich (unsigned char b, int o, int e) { b = b ^ b >> 4; b = b ^ b >> 2; return o ^ e ^ (b ^ b >> 1) & 1; }
^^wer kommt drauf?
-
Wahrscheinlich 0 zurückgeben oder so?
-
_matze schrieb:
Wahrscheinlich 0 zurückgeben oder so?
bitte nur ernstgemeinte anworten,
dass du's rauskriegst, hab ich auch nicht erwartet *fg*
-
hat keine 'ne idee?
hinweis: b darf 0...255 sein, o und e dürfen beide entweder 0 oder 1 sein.
der output ist auch 0 oder 1.
so, und jetzt enttäuscht mich nicht...
-
berechnet die parität von b, aber o und e können jeweils die logik umdrehen. außerdem ist es nicht für einen pc, sonst hättest du b durch die alu geschickt und das parity-flag gelesen.
b könnte ein empfangenes zu prüfendes byte sein,
o das dabei mitempfangene parity-bit
e der modus ob odd oder even
und der rückgabewert, ob kein 1-bit-übertragungsfehler passieret ist.
-
volkard schrieb:
berechnet die parität von b, aber o und e können jeweils die logik umdrehen. außerdem ist es nicht für einen pc, sonst hättest du b durch die alu geschickt und das parity-flag gelesen.
b könnte ein empfangenes zu prüfendes byte sein,
o das dabei mitempfangene parity-bit
e der modus ob odd oder even
und der rückgabewert, ob kein 1-bit-übertragungsfehler passieret ist.absolut richtig. die funktion generiert aus einem gesendeten 9 bit-wort das letzte bit, indem von den empfangenen 8 bits (b) die parity berechnet, dann mit dem parity-error bit des UART (e) verknüpft und durch die einstellung (o, 1==odd, 0==even) eventuell umgedreht wird.
volkard, du machst mir angst *fg*