Mikroprogrammierung und Parität
-
Ichs tehe gerad so ein bisschen auf dem Schlauch.
Ich muss ein Mikroprogramm schreiben, was mir die Anzahl der 1-Bits zählt und in Abhängigkeit ob dies gerade oder ungerade ist, das Carry-Flag setzt.
Das Problem ist, das ich nicht mit dem Parity-Bit meiner mikroprogrammierbaren Maschine arbeiten kann.
Und ich habe auch keine Operationen wie modulo oder div zur Verfügung. Höchstens logische und arithmetische Shifts.
Nur gerade weiss ich nicht genau, wie ich das damit umsetzen könnte.Vielleicht hat ja jemand eine Idee.
Besten Dank!
-
sowas?
bool Parity(int32_t V) { for(int a=1;a<32;a++) V^=(V>>a); return V&1; }
-
-
rapso schrieb:
sowas?
bool Parity(int32_t V) { for(int a=1;a<32;a++) V^=(V>>a); return V&1; }
das entspricht etwa dem 'Computing parity the naive way' von der von rüdi geposteten seite
-
pale dog schrieb:
rapso schrieb:
sowas?
bool Parity(int32_t V) { for(int a=1;a<32;a++) V^=(V>>a); return V&1; }
das entspricht etwa dem 'Computing parity the naive way' von der von rüdi geposteten seite
ich mach ja auch nicht jemanden anderen hausaufgaben, aber wenn er nichtmal sowas primitives hinbekommt, dann darf man ihm mal nen tip geben
-
Ähm meinst du mich mit primitiv und Hausaufgaben nicht hinbekommen?
Da muss ich dich leider enttäuschen.
Natürlich ist mir klar, wie ich die Bits zähle...nur ich hab halt keine solchen Konstrukte zur Verfügung...
Also danke rapso
-
Griffin schrieb:
Natürlich ist mir klar, wie ich die Bits zähle...nur ich hab halt keine solchen Konstrukte zur Verfügung...
es sind doch nur ein paar XOR verknüpfungen und zählen brauchste schon mal gar nix
-
Hab ich ein XOR? Nein. Kann ich die Zahl durchlaufen? Auch nicht wirklich.
Das ichs nicht zählen muss, sonst das Bit switchen kann ist ja logisch.Naja war dumm den Thread zu amchen...hätte ich mir denken können
-
Griffin schrieb:
Hab ich ein XOR? Nein. Kann ich die Zahl durchlaufen? Auch nicht wirklich.
kann dein merkwürdiges teil AND, OR und NOT?
das würde reichen, damit geht auch
-
Du hast kein Xor?
gut:
(x & ~y) | (~x & y)
Fehlt dir sonst noch was?Eine Version ohne Oder:
((x & ~(x & y)) & ~(y & ~(x & y)))...