Halb- und Volladdierer



  • Danke dir!
    Ist es sinnvoll zu sagen, dass der Vorteil des Volladdierers das Carrybit (Übertrag) ist? Kann man eigentlich mehrstellige Zahlen ausschließlich mit Halbaddierern addieren?



  • freakC++ schrieb:

    2.) Warum redet man bei drei Binärzahlen von einem Volladdierer? Könnte man nicht eine Schaltung entwerfen, die auch vier einstellige Binärzahlen addieren kann? Die wäre zwar komplizierter, aber der Volladdierer ist auch viel komplexer als der Halbaddierer.

    Es geht hier um die Anwendung zum Summieren von größeren Binärzahlen: Der Halb-Addierer nimmt zwei Bits und spuckt deren Summe aus, der Voll-Addierer bekommt als zusätzlichen Eingang den Übertrag von der niedrigeren Stelle. Wenn du z.B. zwei Bytes (à 8 Bit) addieren willst, kannst du einen Halb-Addierer und 7 Voll-Addierer zusammenpacken, wobei der Carry-Ausgang jedes Addierers jeweils als drittes Eingangssignal für den nächsten verwendet wird.
    (und außerdem kann man einen Volladdierer aus zwei Halbaddierern zusammensetzen ;))



  • brauche ich den einen Halbaddierer für das letzte Bit? Oder wofür ist der da? Es kann ja auch sein, dass beim letzten Bit ein Übertrag anfällt.



  • brauchen nicht - und wenn du einen Halb-Addierer verwendest, dann eher für das erste Bit (dort hast du keinen Übertrag von einer niedrigeren Stelle, den du berücksichtigen mußt).

    Vielleicht hilft es dir ja, wenn ich das mal aufzeichen:

    +---+
    a0 --|HA |-- n0
    b0 --|   |+  c0
         +---+|
              |
        +-----+
        |
        |+---+
        +|VA |-- n1
    a1 --|   |
    b1 --|   |+  c1
         +---+|
              |
    ...
    


  • freakC++ schrieb:

    brauche ich den einen Halbaddierer für das letzte Bit? Oder wofür ist der da? Es kann ja auch sein, dass beim letzten Bit ein Übertrag anfällt.

    Der Halbaddierer ist praktisch nur ein Zwischenschritt beim Lernen, was ein Volladdierer ist. Und der Übertrag von der höchsten Stelle kommt typischerweise unten wieder rein. Das ist also eine zyklische Geschichte.

    In einem echten Computer wirst Du 2 64-bit Zahlen übrigens nicht durch 64 hintereinandergeschaltete Volladdierer addieren. Dort treibt man mehr Aufwand, um die "Tiefe" der Schaltung zu verringern.

    @CStoll: Bezieht sich Deine Signatur eigentlich auf Deine Moderatorentätigkeit? 😋



  • Gregor schrieb:

    @CStoll: Bezieht sich Deine Signatur eigentlich auf Deine Moderatorentätigkeit? 😋

    nur die zweite Zeile - wieso fragst du?



  • CStoll schrieb:

    Gregor schrieb:

    @CStoll: Bezieht sich Deine Signatur eigentlich auf Deine Moderatorentätigkeit? 😋

    nur die zweite Zeile - wieso fragst du?

    Nur, weil ich die Signatur gerade gesehen habe. Ich fand es ganz lustig, die erste Aussage auf die Moderatorentätigkeit zu beziehen. 🙂 ...ich muss mal gucken, wie es da im MFC-Forum aussieht. 😃



  • um einen Volladdierer mit zwei Halbaddierern zu bauen, muss in die Schaltung aber noch ein ODER. Warum?



  • freakC++ schrieb:

    um einen Volladdierer mit zwei Halbaddierern zu bauen, muss in die Schaltung aber noch ein ODER. Warum?

    Um die beiden Carry-Ausgänge miteinander zu verknüpfen. Du hast ja einen Übertrag im Gesamtergebnis, wenn einer der beteiligten Halb-Adder einen Übertrag liefert.
    (nachdem du so viel Übung darin gesammelt hast, kannst du ja mal die Formel auseinandernehmen :D)

    @Gregor: Den Spruch hatte ich mir schon für meinen ersten "Auftritt" zugelegt und dann konsequent überall mitgenommen (das war lange, bevor ich überhaupt von diesem Forum gehört habe). Aber er besagt ja nicht, daß ich dafür verantwortlich bin 😃



  • CStoll schrieb:

    (nachdem du so viel Übung darin gesammelt hast, kannst du ja mal die Formel auseinandernehmen :D)

    ´

    Das habe ich bereits gemacht :D. Und welch Wudner: Ich kam auf das richtige Ergebnis. D


Anmelden zum Antworten