Mehrere Binärzahlen addieren?
Ich hab eine kurze Frage. Ich soll 2 binärzahlen auf die schulische Methode multiplizieren. Da kam ich auch eigentlich mit zurecht, aber stoß auf eine Frage beim addieren. Wenn ich jetzt 1+1 addiere kommt ja eine 0 mit 1 überschlag raus. Wie ist das aber bei mehreren Einsen. Also wenn ich 1+1+1 habe oder 1+1+1+1. Weil das sind große binärzahlen und da muss ich paar mal mehrere Einsen addieren. Ich würde mich über eine kurze Antwort freuen.
hier ist noch ein bild zu meiner aufgabe.
Hier ist es mit rechnung. Aber eigentlich sollte die lösung so sein: 1010100011000
1 Antwort
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;
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.
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
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.
ich hab nochmal mein beitrag bearbeitet. müsste man gleich sehen können
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.
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.
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.
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 :)
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.
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.