Arithmetische-Logische Einheit(ALU)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Arithmetische-Logische Einheit(ALU)

    Hallo,

    In dieser Aufgabe soll eine kleine Arithmetische-Logische Einheit(ALU) in Form eines Java-rogammentiert werden. Die ALU soll mit 8 Bit breiten Daten arbeieten. Jedes Datum soll dabei durch ein Feld aus boolean-Variablen dergestellt werden.
    Erweitern Sie zur Lösung der Aufgabe das folgende Framen, in dem beispiel auch die Implementierung der bitweisen NOT-Funktion gezeit ist:

    Quellcode

    1. class ALU extends InputOutput {
    2. static boolean [] not (boolean[] arg) {
    3. boolean[] result=new boolean[8];
    4. for (int i=0; i<8; i++) {
    5. result[i]= !arg[i];
    6. }
    7. return result;
    8. }
    9. }


    a) Implementieren Sie analog zum Beispiel not die Bitoperationen and, or,xor und shl(ShiftLeft).

    Beispiel: shl 10111001(base 2)=01110010(base 2)

    b)Implemetieren Sie die Operationen Addition(add), Subtraktion(sub) und Multiplikation(mul) für ganze Zahlen. Das erste Bit gibt das Vorzeichen an(1 für negative Zahlen). Die folgenden sieben Bits den Vorzeichenlosen Zahlenwert . Welchen Zahlenbereich kann diese Darstellung darstellen? Was passiert bei einem Überlauft/Unterlauft?

    c)Implementieren Sie analog zum Beispiel not einen Vergleichsoperator eql für die ganzen Zahlen in oben beschriebener Darstellung.

    d) Implementieren Sie zwei Konvertierungsprozeduren fromInt und toInt, mit denen Werte des Typs int in Bitvektoren konvertiert werden können und umgekehrt.
    Ihre Implementierung sollten Sie dann mit folgendem Hauptprogamm testen können:

    Quellcode

    1. Public static void main(String[] arg) {
    2. boolean[] a1,a2;
    3. a1=fromInt(-6);
    4. a2=fromInt(3);
    5. println(toInt(add(a1,a2)));
    6. println(toInt(sub(a1,a2)));
    7. println(toInt(mul(a1,a2)));
    8. println(toInt(shl(a1)));
    9. }
    Alles anzeigen
    Ich bin Anfänger bei der Programmierung in Java und möchte mit dieser Forum viel lernen.