Was machen der Computer wenn er durch Null teilt?

Beratung, Tipps, Konfiguration
win8789
Beiträge: 25
Registriert: So Mai 29, 2016 12:27 pm

Was machen der Computer wenn er durch Null teilt?

Beitrag von win8789 » Sa Nov 12, 2016 12:52 pm

Hallo,
ich weiß zwar, dass man nicht durch Null teilen darf und verstehe auch warum, allerdings weiß ich nicht genau was der Computer versucht, wenn er durch 0 teilt, da ich denke, dass der Computer auf seiner primitivsten eben, mit den Transistoren und den Logic-Gates, nicht wissen kann, dass man nicht durch 0 teilen kann und dementsprechen irgendetwas versuchen muss, was aber vom Betriebssystem erkennt wird und als Fehler, welcher eventuell zum Absturz führt, erkannt wird.
Wie das rechenen auf der untersten Ebene, mit den Trasistoren und den Logic-Gates funktioniert, würde mich schon interessieren. ;)

mfro
Beiträge: 302
Registriert: Mi Jan 16, 2013 4:58 pm

Re: Was machen der Computer wenn er durch Null teilt?

Beitrag von mfro » Sa Nov 12, 2016 3:22 pm

In Hardware ist eine Division auch nichts anderes als das, was Du nach der "Grundschulmethode" (mit Bleistift und Papier) machst: ein Rechenschema mit wiederholter Subtraktion.
Der Divisor wird vom Dividend so oft abgezogen, bis er nicht mehr "reinpasst", die Anzahl der Subtraktionen ist das Ergebnis.

Würde die echte Hardware den Divisor nicht schon zu Beginn auf 0 testen und - je nach Prozessor - eine Exception oder Trap auslösen, käme die Division einfach nicht zum Ende, weil der Divisor immer in den Dividenden passt.
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

Benutzeravatar
Necip
Beiträge: 122
Registriert: Do Nov 17, 2011 12:03 pm
Kontaktdaten:

Re: Was machen der Computer wenn er durch Null teilt?

Beitrag von Necip » Sa Nov 12, 2016 4:36 pm

Eine analoge Maschine für die Division würde sehr einfach aufgebaut sein: ein Stromkreis mit einer Batterie, ein Widerstand und eine Lampe. Wenn man den Widerstand als den Divisor betrachtet und regeln kann, dann würde nach dem ohmschen Gesetz der Strom bei 0 Widerstand ungebremst durch die Lampe fliessen und sie würde durchbrennen. Das wäre eine Division durch Null und gleichzeitig eine Exception, die durch eine Sicherung abgefangen werden müsste.

Onraku
Beiträge: 43
Registriert: Fr Sep 09, 2011 2:14 pm

Re: Was machen der Computer wenn er durch Null teilt?

Beitrag von Onraku » Sa Nov 12, 2016 11:23 pm

Diese Analogie hinkt ein wenig:
Zum einen hat eine Batterie immer einen Innenwiderstand, sie ist also gar nicht in der Lage "unendlich" hohen Strom fließen zu lassen.
Zum anderen bildet die Lampe selbst einen Widerstand.

Benutzeravatar
Necip
Beiträge: 122
Registriert: Do Nov 17, 2011 12:03 pm
Kontaktdaten:

Re: Was machen der Computer wenn er durch Null teilt?

Beitrag von Necip » So Nov 13, 2016 9:17 am

Welches Modell spiegelt die Wirklichkeit absolut wider? Jedes Modell hinkt auf die eine oder andere Weise, sonst würde man es bei neuen Erkenntnissen nicht durch moderne Modelle ersetzen. Wobei interessanterweise je nachdem wie man das Wort "modern" ausspricht kann es etwas Neues ("modern") oder etwas Altes ("mo:dern") bedeuten! Das Neue, das in deiner Welt auftaucht ist bereits zum Untergang geweiht, oder "Alles, was ein Anfang hat, hat auch ein Ende, Neo!" ^^

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3073
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Was machen der Computer wenn er durch Null teilt?

Beitrag von cloidnerux » So Nov 13, 2016 10:43 am

Welches Modell spiegelt die Wirklichkeit absolut wider?
Philosophische Frage, führt aber auch nur zu philosophischen Antworten.
Natürlich ist der Strom durch einen Widerstand mit I = U/R gegeben, sodass man ja schon sagen kann, dass ein Widerstand => 0 einen unendlich hohen Strom erzeugt. Dies ist aber nicht Physikalisch und auch nicht Mathematisch, deswegen ja auch die Definitionslücke der Definition der Division.
Verbinde ich zwei elektrische Potentiale mit einem idealen Leiter, so müssen die beiden Potentiale sich angleichen. Afaik kann es also keine Spannung zwischen diesen beiden Potentialen geben, wenn ich sie mit einem idealen Leiter verbinde, damit wäre dann auch U = 0 und die Gleichung wäre I = 0/0 => nicht definiert.

Weiterhin ist ja auch das Ergebnis von a/0 für ein beliebiges reeles "a" nicht definiert. Natürlich geht der Grenzwert von

Code: Alles auswählen

lim b->0  a/b

gegen Unendlich, doch hier muss man sich klar werden, dass "Unendlich"(inf) keine Zahl ist, da es keinem der Axiome der natürlichen, reelen oder komplexen Zahlen folgt.
inf + 1 = inf
inf - 10^10 = inf
inf / 2 = inf
inf * 10 = inf

Im Endeffekt ist das Ergebnis und das Verhalten des Rechenwerkes bei der Division durch 0 undefiniert. Dazu kann man sich dieses Video von einer mechanischen Rechenmaschine anschauen. Die Recheneinheiten in modernen Prozessoren machen das, was eingangs schon erwähnt wurde: Eingaben auf validität Prüfen, und dann erst Rechnen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Necip
Beiträge: 122
Registriert: Do Nov 17, 2011 12:03 pm
Kontaktdaten:

Re: Was machen der Computer wenn er durch Null teilt?

Beitrag von Necip » So Nov 13, 2016 11:44 am

Die arme Maschine! :D

Hätte sie unendliche Kapazitäten, würde sie auch in unendlich langer Zeit, eine unendlich grosse Annäherung an die Unendlichkeit erreicht haben.

Da aber die Unendlichkeit keine Zahl ist, liegen wir im Prinzip jenseits der Definitionen von Zahlen, also operieren wir nicht mehr innerhalb der Arithmetik, sondern liegen in der Synthese von positiven und negativen Zahlen!

Zahlen können gerade oder ungerade sein. Nehmen wir an wir haben eine Zahl aus der Unendlichkeit erwischt. Diese Zahl kann gerade ODER ungerade sein. Aber es geht ja um eins weiter! Ergo ist die Unendlichkeit ein gerade-ungerade Ding. Erst, wenn man ein Blick drauf wirft kann man sie definieren. siehe Phänomen "schrödigers Katze" https://de.m.wikipedia.org/wiki/Schrödingers_Katze

Wenn man sich dies in die Meta-Physik extrapoliert gilt: Alles ist gleichzeitig da, jede Realität, jede mögliche Möglichkeit, die Wirklichkeit. Nur wenn wir hinschauen erstarrt daraus nur eine subjektive Wahrheit.

win8789
Beiträge: 25
Registriert: So Mai 29, 2016 12:27 pm

Re: Was machen der Computer wenn er durch Null teilt?

Beitrag von win8789 » So Nov 13, 2016 12:04 pm

Ich hab jetzt das Gefühl, dass nun x/0, an einigen Stellen, mit inf gleichgesetzt wird. Meines Wissens nach wäre das doch bei lim->0 der Fall, oder?

mfro
Beiträge: 302
Registriert: Mi Jan 16, 2013 4:58 pm

Re: Was machen der Computer wenn er durch Null teilt?

Beitrag von mfro » So Nov 13, 2016 1:41 pm

cloidnerux hat geschrieben:

Code: Alles auswählen

lim b->0  a/b
gegen Unendlich
Gerade das ist falsch. Für b < 0 geht der Grenzwert gegen -∞
Also gibt es keinen Grenzwert.
It's as simple as that. And remember, Beethoven wrote his first symphony in C.

win8789
Beiträge: 25
Registriert: So Mai 29, 2016 12:27 pm

Re: Was machen der Computer wenn er durch Null teilt?

Beitrag von win8789 » So Nov 13, 2016 1:47 pm

mfro hat geschrieben:
cloidnerux hat geschrieben:

Code: Alles auswählen

lim b->0  a/b
gegen Unendlich
Gerade das ist falsch. Für b < 0 geht der Grenzwert gegen -∞
Also gibt es keinen Grenzwert.
Nagut kommt jetzt natürlich darauf an von welcher "Seite" man sich 0 annähert und ob a positiv oder negativ ist. a/0 beleibt aber undefiniert und einen Annährung an 0 sorgt für ein -∞ oder ∞.

Antworten