Binärzahlen Addition Rechenfehler?
Da man nur endlich viele Bits zur Verfügung hat kann es ja bei der Addition zweier Binärzahlen zu Rechenfehlern kommen. Kann mir jemand sagen wie es dazu kommt und wie man solche Rechenfehler feststellen kann?
4 Antworten
Gemeint ist wohl ein Überlauf.
Feststellen lässt sich dieser durch Auswertung des Überlaufbits des letzten Volladdierers.
Bei Verwendung des Zweierkomplements können zudem auch Unterläufe auftreten. Sowohl Überläufe als auch Unterläufe dürften sich hier durch Auswertung des letzten Überlaufbits und des letzten Ergebnisbits identifizieren lassen, wenn ich mich richtig erinnere.
Bei Ganzzahlen kann es eigentlich im Rahmen der Speicherbelegung nicht zu Fehlern kommen. Kommazahlen sind hingegen unterschiedlich dicht. Um die 0 herum sind sie dichter verteilt als im betragsmäßig hohen Bereich.
Das bedeutet, wenn du zwei große Kommazahlen addierst, fehlt dem Computer eventuell der entsprechende Repräsentant und er muss den nächstkleineren oder nächstgrößeren nehmen.
Es gibt Datentypen, die mehrere Variablen zur Erweiterung des Zahlenraums verbinden können, aber letztlich ist alles immer endlich. Spätestens bei irrationalen Zahlen wie Pi muss zwangsläufig gerundet werden, wenn nicht symbolisch gerechnet werden kann.
Wenn der Zahlenbereich für das Ergebnis nicht ausreicht, kommt es zu diesem Fehler. Ist bei Dezimalzahlen nicht anders. Du addiert zwei dreistellige Zahlen hast aber für das Ergebnis ebenfalls nur 3 Ziffern reserviert. Wenn mehr als 999 rauskommt, kann der "Übertrag" in die Tausenderziffer nicht abgebildet werden. Das Ergebnis ist falsch. Feststellung erfolgt durch eine "Übertragsinformation" , bei Binär Addition ein Bit das dies anzeigt.
Also: Zahl ist Zahl. "Binär" ist nur eine von vielen Darstellungsformen einer Zahl. Bei einer Zahl mit endlichen Stellen kann man ganz genau auch die Bits belegen solange genug Bits zur Verfügung stehen. Hat die Zahl mehr Nachkommastellen als das System im mathematischen Rechenwerk verträgt, wird es tatsächlich kritisch und es kommt zu Ungenauigkeiten. Wenn das Ergebnis den Bereich überschreitet, der verarbeitet werden kann, kommt es ebenfalls zu Fehlern.
Bei Zweierkomplement-Zahlen liegt ein Überlauf vor, wenn das Überlaufbit des letzten Addierers vom Überlauf des vorletzten Addierers abweicht.
In der Hardware ist das einfach eine XOR-Verknüpfung.