Gast
#2614184
Hi, was macht ein Mikrocontroller, wenn man durch Null teilt? Der Controller hängt sich dabei nicht auf, aber was berechnet er dabei? mfg
|
Anzeige
|
Durch Null teilen
Gast
#2614184
Hi, was macht ein Mikrocontroller, wenn man durch Null teilt? Der Controller hängt sich dabei nicht auf, aber was berechnet er dabei? mfg Nullteiler schrieb: > Der Controller hängt sich dabei nicht auf, aber was berechnet er dabei? Käse. > was macht ein Mikrocontroller Welcher denn? Ausprobieren? Kann und will dir mit den Angaben vmtl. keiner helfen...
Gast
#2614204
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).
Gast
#2614207
Für IEEE 754 Gleitkommazahlen gibt es eine klare Antwort. Die Library muss +Unendlich liefern.
Gast
#2614215
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.
Gast
#2614224
Bei uns ist auch letztens die ganze Firma abgebrannt, weil irgendein Trottel unserer Programmierer einen uC durch 0 hat teilen lassen...
Gast
#2614226
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 ....
Gast
#2614230
Ich will nicht sterben, bitte mach den Versuch nicht.
Gast
#2614233
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 :-) @STEFAN: ACK :-)
Gast
#2614249
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. 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. 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? ;-)
Gast
#2614286
Kann man sich das nicht merken? Chuck Norris kann durch 0 teilen! Wenn man dem µC ein Handy spendiert, kann der ja mal bei diesem Chuck Norris anrufen.. 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. 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 ;-) Reinhard S. schrieb: > Chuck Norris kann durch 0 teilen! php auch (mit ein bisschen glück gibts eine warning, sonst nichts) Ja, google hilft weiter: http://www.google.com/search?q=divide+by+zero&hl=de&client=firefox-a&hs=5S0&rls=org.mozilla:de:official&prmd=imvns&source=lnms&tbm=isch&ei=gqh0T8HgF83Y4QSE-KyFDg&sa=X&oi=mode_link&ct=mode&cd=2&ved=0CBIQ_AUoAQ&biw=1680&bih=907 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. 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 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
und
diese Frage für sich selbst noch nicht beantwortet hat:
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 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. :-) Die US-Navy hats im letzten Jahrtausend schon praktisch getestet: http://www.google.de/#hl=de&site=&source=hp&q=uss+yorktown+divide+by+zero&oq=uss+yorktown+divide+by+zero&aq=f&aqi=g1&aql=&gs_l=hp.3..0.1616l1616l0l2758l1l1l0l0l0l0l191l191l0j1l1l0.frgbld.&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=473ed68e5404e299&biw=1680&bih=896 Arno Reinhard S. schrieb: > Chuck Norris kann durch 0 teilen! Kunststück, Chuck Norris zählte auch schon bis unendlich. 2 mal! gruß cyblord 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... Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|