Paritybit

Hzrfa

Grünschnabel
Schreiben Sie ein Java-Programm ParityBit, das Folgendes leistet. In einer int Variablen wert soll ein (beliebiger) Wert enthalten sein, der aus genau 4 Bit Nutzinformation in den Bits 1-4 besteht und einem zusätzlichen Bit als Prüfziffer im niederwertigsten Bit 0. Der Wert des Prüfbits muss die Quersumme der Bits der Nutzinformation modulo 2 sein, damit die Nutzinformationen als korrekt gewertet wird. Oder anders ausgedrückt: ist die Quersumme der Bits der Nutzinformation eine gerade Zahl, so muss das Prüfbit 0 sein, ansonsten 1.
Beispiele:
1. 110002 ist ein korrekter Wert, weil Summe 1+1+0+0=2 ergibt und dies demzufolge eine gerade Zahl ist, was dem Prüfbit 0 entspricht.
2. 111012 ist ein korrekter Wert, weil Summe 1+1+1+0=3 ergibt und dies demzufolge eine ungerade Zahl ist, was dem Prüfbit 1 entspricht.
3. 111112 ist ein inkorrekter Wert, weil Summe 1+1+1+1=4 ergibt und dies demzufolge eine gerade Zahl ist, aber das Prüfbit ist 1.
Schreiben Sie ihr Java-Programm basierend auf folgender Deklaration: int wert = 0x17; (wir haben derzeit noch keine Möglichkeiten zur Dateneingabe) und geben Sie folgendes aus, jeweils in einer Zeile und in der angegeben Reihenfolge:
• das Resultat der Überprüfung der Nutzinformation (Summe der 4 Bits) mit der Prüfziffer als Wahrheitswert (also entweder true oder false, je nachdem ob die Prüfziffer korrekt war oder nicht).
• die berechnete Summe (eine Zahl größer gleich 0)
• der Wert des Paritätsbits (0 oder 1).
Beispiel: Für den Wert 110002 = 2410 wäre die Ausgabe:
true
2 0
Ihr Programm soll natürlich nicht nur diesen Testwert bearbeiten können, sondern auch jeden anderen zulässigen Wert! Hinweise:
• Nutzen Sie u.a. geeignete Bitoperationen.
• Wie kann man überprüfen, ob das 0. Bit eines int-Wertes 1 ist oder 0?
• Wenn Sie den Wert eines beliebigen Boolschen Ausdrucks ausgeben, so wird dieser Wert berechnet und entweder true oder false ausgegeben, je nachdem, ob der Wert des Ausdrucks wahr oder falsch war. Zum Beispiel produziert System.out.println(i > 5); die Ausgabe true oder false, abhängig vom Wert der Variablen i.
 

Anhänge

  • 74D89B60-2F4E-4E4B-B958-AE2B7C055122.jpeg
    74D89B60-2F4E-4E4B-B958-AE2B7C055122.jpeg
    446,8 KB · Aufrufe: 9