Mehrere Binärzahlen addieren?


07.12.2024, 15:34

hier ist noch ein bild zu meiner aufgabe.


07.12.2024, 15:49

Hier ist es mit rechnung. Aber eigentlich sollte die lösung so sein: 1010100011000

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Wenn du nur zwei Binärzahlen addierst, dann musst du pro Schritt maximal drei bits, sprich die zwei der Zahlen und den Überlauf, addieren.

Wenn du mehrere Binärzahlen auf einmal addierst, dann müsstest du entsprechend den Überlauf mehrere Bit geben.

Für drei Bit gilt:

ret = a + b + c:
000 => ret=0 c=0;
001 => ret=1 c=0;
011 => ret=0 c=1;
111 => ret=1 c=1;

Alibaba2003 
Beitragsersteller
 07.12.2024, 15:24

Sorry, ich hab das nicht ganz verstanden. Also wenn ich bei 3 bits miteinander addiere, also z.b. 1+1+1 dann ist es 1 mit dem Überlauf 1. Und wenn ich jetzt aber z.b 1+1+1+1 habe, ist es dann dasselbe? Weil egal wie ich es rechne, es kommt nicht das Ergebnis raus, welches richtig ist.

Destranix  07.12.2024, 15:25
@Alibaba2003
Und wenn ich jetzt aber z.b 1+1+1+1 habe, ist es dann dasselbe?

Ne, dann ist ret=0 und c=10;

Aber der Fall sollte gtar nicht vorkommen, wenn du zwei Binärzahlen addierst.

Alibaba2003 
Beitragsersteller
 07.12.2024, 15:29
@Destranix

Ne ich rechne nicht nur 2 binärzahlen. Das ding halt mehrere, da ich multipliziere und irgendwo mach ich die ganze zeit was falsch, aber finde es nicht. Aber danke

Destranix  07.12.2024, 15:43
@Alibaba2003

Also richtig aufgeschrieben hast du es. Wie sieht denn deine Rechung mit Ergebnis und Übertrag aus? Ich habe es richtig, indem ich mir die Zahlen pro Spalte zusammenrechne, das letzte Bit als Ergebnis nehme und den Rest als Übertrag.

Alibaba2003 
Beitragsersteller
 07.12.2024, 15:49
@Destranix

ich hab nochmal mein beitrag bearbeitet. müsste man gleich sehen können

Destranix  07.12.2024, 15:51
@Alibaba2003

Du erhälst mehrere Überträge, die du addieren musst.

Wenn du z.B. 10 als Übertrag erhälst. und dann bei der nächsten Ziffer einen Übertrag von 1, dann fallen die zwei 1en der Überträge ja auf dieselbe Stelle.

Du musst also quasi auch die Überträge addieren.

Alibaba2003 
Beitragsersteller
 07.12.2024, 15:54
@Destranix

sorry das mit den überträgen verstehe ich nicht ganz. Da liegt auch die ganze Zeit mein Problem. Könntest du mir vielleicht ein beispiel geben. Den Teil, dass die beiden 1en auf die selbe stelle fallen, verstehe ich nicht ganz.

Destranix  07.12.2024, 16:11
@Alibaba2003

Du erhälst pro Addition einen Übertrag. Die mögliche Länge des Übertrags hängt von der Anzahl der Addierten Ziffern an der Stelle ab:

      aaaaaaaa * bbbbbbbb
      xxxxxxxx
       xxxxxxxx
        xxxxxxxx
         xxxxxxxx
          xxxxxxxx
           xxxxxxxx
            xxxxxxxx
             xxxxxxxx
                  c
                cc
              ccc
             ccc
           cccc
          cccc
         cccc
        cccc
       cccc
      cccc
      ccc
     ccc
    ccc
   ccc
   cc
  cc
 cc
 c
c 
      rrrrrrrrrrrrrrr

So sieht das aus mit dem jeweiligem Übertrag. Du musst teilweise bis zu vier Übertragbits zusätzlich addieren.

Alibaba2003 
Beitragsersteller
 07.12.2024, 17:45
@Destranix

Omg danke. Ich danke dir vom Herzen. Ich hab es endlich richtig gemacht und verstanden, was du die ganze zeit meintest. Danke für deine zeit und Mühen :)

Destranix  08.12.2024, 09:10
@Alibaba2003

Und der Einfachheit halber: Man kann oben in meinem Diagramm natürlich auch die Länge des Übertrags immer fest ansetzen, dann sieht es eventuell etwas geordneter und weniger kompliziert aus.