Forum: Offtopic Durch Null teilen


von Nullteiler (Gast)


Lesenswert?

Hi,

was macht ein Mikrocontroller, wenn man durch Null teilt?

Der Controller hängt sich dabei nicht auf, aber was berechnet er dabei?

mfg

: Verschoben durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Nullteiler schrieb:
> Der Controller hängt sich dabei nicht auf, aber was berechnet er dabei?
Käse.

> was macht ein Mikrocontroller
Welcher denn?

von Thomas B. (nichtessbar)


Lesenswert?

Ausprobieren? Kann und will dir mit den Angaben vmtl. keiner helfen...

von Uwe (Gast)


Lesenswert?

Steht im Datenblatt bzw. Programing Reference Manual. Manche CPUs werfen 
eine Exception bzw. bei manchen DSPs kann man konfigurieren ob ein 
Sättigung bei Überlauf eintreten soll. Manche Fließkommaeinheiten 
reagieren mit NAN (Not A Number weil theoretisch Unendlich bzw. nicht 
definiert).

von Kein Name (Gast)


Lesenswert?

Für IEEE 754 Gleitkommazahlen gibt es eine klare Antwort.

Die Library muss +Unendlich liefern.

von Rüdiger (Gast)


Lesenswert?

Nullteiler schrieb:
> was macht ein Mikrocontroller, wenn man durch Null teilt?

Er explodiert mit einem gleißenden Lichtblitz und die darauf folgende 
Aschewolke verhüllt für Jahre die Sonne. Wegen so etwas sind damals auch 
die Dinos ausgestorben.

von i5000 (Gast)


Lesenswert?

Bei uns ist auch letztens die ganze Firma abgebrannt, weil irgendein 
Trottel unserer Programmierer einen uC durch 0 hat teilen lassen...

von dolf (Gast)


Lesenswert?

Rüdiger schrieb:
> Er explodiert mit einem gleißenden Lichtblitz und die darauf folgende
> Aschewolke verhüllt für Jahre die Sonne. Wegen so etwas sind damals auch
> die Dinos ausgestorben.

hoffentlich sterben leute die so unqualifiziert antworten bald aus ....

von tom (Gast)


Lesenswert?

Ich will nicht sterben, bitte mach den Versuch nicht.

von 0x53 0x54 0x45 0x46 0x41 0x4E (Gast)


Lesenswert?

dolf schrieb:
> Rüdiger schrieb:
>> Er explodiert mit einem gleißenden Lichtblitz und die darauf folgende
>> Aschewolke verhüllt für Jahre die Sonne. Wegen so etwas sind damals auch
>> die Dinos ausgestorben.
>
> hoffentlich sterben leute die so unqualifiziert antworten bald aus ....

Ich fand die Antwort super :-)

von Random .. (thorstendb) Benutzerseite


Lesenswert?

@STEFAN:
ACK :-)

von chick (Gast)


Lesenswert?

Wer solche Fragen stellt und sich nicht selbst informieren kann oder 
will (Datenblätterlesen soll ja durchaus kein Geheimnis sein), muß auch 
mit solchen Antworten rechnen.

Ich fand sie ebenfalls klasse.

Früher gabs Arithmetik-Co-Prozssoren mit Metallkappen. Wahrscheinlich 
war genau diese Division der Grund dafür. So wurden die Schäden wohl 
minimiert.

von Thomas E. (thomase)


Lesenswert?

chick schrieb:
> Früher gabs Arithmetik-Co-Prozssoren mit Metallkappen. Wahrscheinlich
> war genau diese Division der Grund dafür. So wurden die Schäden wohl
> minimiert.
Das waren Wartungsklappen. Wenn durch eine Null-Division etwas verloren 
ging, konnte man die Klappe öffnen und die Daten wieder reinsetzen.

mfg.

von M. B. (Firma: TH Nürnberg) (ohmen)


Lesenswert?

chick schrieb:
> Früher gabs Arithmetik-Co-Prozssoren mit Metallkappen. Wahrscheinlich
> war genau diese Division der Grund dafür. So wurden die Schäden wohl
> minimiert.

Durch herumfliegende Schrapnells? ;-)

von D. I. (Gast)


Angehängte Dateien:

Lesenswert?

Kann man sich das nicht merken?

von Vn N. (wefwef_s)


Lesenswert?


von Reinhard S. (rezz)


Lesenswert?

Chuck Norris kann durch 0 teilen!

von Matthias S. (da_user)


Lesenswert?

Wenn man dem µC ein Handy spendiert, kann der ja mal bei diesem Chuck 
Norris anrufen..

von j. c. (jesuschristus)


Lesenswert?

M. B. schrieb:
> Durch herumfliegende Schrapnells? ;-)

Knall und Metall gibt Blut überall!

Sieht so aus als wäre die Sauerstoff- und Koffeinkonzentration heute 
nachmittag schon böse im Keller.

von Yalu X. (yalu) (Moderator)


Lesenswert?

chick schrieb:
> Wer solche Fragen stellt und sich nicht selbst informieren kann oder
> will (Datenblätterlesen soll ja durchaus kein Geheimnis sein), muß auch
> mit solchen Antworten rechnen.

Da die wenigsten Mikrocontroller über einen Divisionsbefehl verfügen,
führt das Lesen des Datenblatts nicht unbedingt zum Ziel. Stattdessen
sollte man sich die die Dokumentation der verwendeten Laufzeitbibliothek
zu Gemüte führen. Falls es aber um C-Programmierung geht, führt auch das
nicht unbedingt zum Ziel, da in C bei der Integerdivision durch Null das
Verhalten "undefined¹" (und nicht etwa "implementation defined") ist. 
Die
Nulldivision ist also in C auf jeden Fall zu vermeiden, und es besteht
kein Anspruch darauf, dass dieses Verhalten dokumentiert sein muss.

Bei Open-Source-Libraries kann man natürlich selber nachschauen, wenn
einen das wirklich interessiert.


¹) "undefined behavior" ist wörtlich zu nehmen und schließt prinzipiell
   auch die Explosion des Mikrocontrollers nicht aus ;-)

von Daniel F. (df311)


Lesenswert?

Reinhard S. schrieb:
> Chuck Norris kann durch 0 teilen!

php auch (mit ein bisschen glück gibts eine warning, sonst nichts)

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?


von Simon H. (simi)


Lesenswert?

Kein Name schrieb im Beitrag #2614207
> Für IEEE 754 Gleitkommazahlen gibt es eine klare Antwort.
>
> Die Library muss +Unendlich liefern.

Sicher? Ich meine, die sollte NaN liefern. +unendlich halte ich für sehr 
schlecht weil in 50% der Fälle kreuzfalsch.

von Simon S. (-schumi-)


Lesenswert?

Man hat es bereits ausprobiert :-D

http://www.roboternetz.de/community/threads/55218-Mit-AVR-durch-0-teilen-!

Irgendwas/0 ergibt "unendlich", soweit das der µC halt darstellen kann 
(sprich alle Bits sind high)

0/0 = 0

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Simon S. schrieb:
> Man hat es bereits ausprobiert :-D
Woher weißt du, dass es hier im Thread ebenfalls um einen AVR geht?

BTW: es stimmt mich nachdenklich, wenn dort im Link ein
1
Erfahrener Benutzer
und
1
Roboter Experte
diese Frage für sich selbst noch nicht beantwortet hat:
1
Ist es überhaupt möglich einen AVR so zu "belasten" dass er heiß wird?

von Bernhard R. (barnyhh)


Lesenswert?

Yalu X. schrieb:
> ¹) "undefined behavior" ist wörtlich zu nehmen und schließt prinzipiell
>    auch die Explosion des Mikrocontrollers nicht aus ;-)

Nein, lieber Moderator!

Der Prozessor darf ausschließlich dann explodieren, wenn "darf nicht 
durch 0 dividieren" in den Absoluten Grenzwerten des Datenblatts 
aufgeführt ist.
Bernhard

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Bernhard R. schrieb:
> Der Prozessor darf ausschließlich dann explodieren, wenn "darf nicht
> durch 0 dividieren" in den Absoluten Grenzwerten des Datenblatts
> aufgeführt ist.

Nein.  Das C-Laufzeitsystem darf die Division durch 0 auch erkennen
und selbst dann, wenn der Prozessor einen Divisionsbefehl hat,
diesen dann gar nicht erst ausführen, sondern stattdessen den Befehl
HCF. :-)

von Arno H. (arno_h)


Lesenswert?


von Cyblord -. (cyblord)


Lesenswert?

Reinhard S. schrieb:
> Chuck Norris kann durch 0 teilen!

Kunststück, Chuck Norris zählte auch schon bis unendlich. 2 mal!

gruß cyblord

von Daniel F. (df311)


Lesenswert?

ob chuck norris es geschafft hat unendlich durch 0 zu teilen bevor er 
wieder angefangen hat zu zählen ist leider nicht bekannt.
vermutlich war es nicht allzu schwierig, sonst hätte er es nicht zweimal 
gemacht...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.