Hallo!
Das Video finde ich optimal für alle, die Innereien von einem µC noch nicht gesehen haben. Anschauen ist angeblich billiger, als Sebstversuche mit unbekanten Endresultat.![]()
Hallo!
Das Video finde ich optimal für alle, die Innereien von einem µC noch nicht gesehen haben. Anschauen ist angeblich billiger, als Sebstversuche mit unbekanten Endresultat.![]()
Geändert von PICture (19.10.2011 um 15:15 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Um das "Compiler-Meckern" zu umgehen:
Einfach in einer Schleife den Teiler überlaufen lassen, dann müsste es zu einer Divison durch null kommen ohne das der Compiler bereits beim Compilieren etwas davon mitbekommt.
In etwa so:
Nachdem der Compiler bei For B = 1 to 256 bemerken würde, dass sich 256 niemals in einer Byte-Variablen ausgehen können, inkrementiere ich kurzerhand direkt in der Schleife nochmals um eins. Damit würde beim letzten Schleifeneintritt B = 255 sein, nach Incr B schließlich null.Code:Dim A as Integer Dim B as Byte For B = 1 to 255 Incr B A=A/B Print A Next
Ich habe es noch nicht ausprobiert, aber was denkt ihr darüber?
Grüße
Thomas
Gute Idee! Bitte ausprobieren.
Es wird folgendes passieren:
1) Es werden die Zahlen in Zweierschritten ausgegeben: 2, 4, 6, 8, ... etc. bis 254, und dann ...
2) Wieder von vorn. (weil eine Exception, ausgelöst durch die CPU, den µC neu starten wird.)
Ich habe es jetzt ausprobiert:
Bei der Divison durch null wird 255 als Ergebnis ausgegeben und der Controller läuft weiter, als ob nichts geschehen wäre. Irgendwie enttäuschend. :/
Grüße
Thomas
Ja, in der Tat.
Schade, ich hatte etwas anderes erhofft
mfg
By the way:
Für Gleitkommazahlen ist ein Ergebnis beim Teilen durch null definiert:
Für Gleitkommazahlen (float und andere Datentypen) ist aber durch den Gleitkommastandard IEEE 754 unter anderem eine Division durch 0 definiert. Dieser Standard definiert zwei Gleitkommazahlen namens +Inf und −Inf (infinity = unendlich) und unterscheidet zwei Zahlen mit dem Wert 0: +0 und −0. Beide repräsentieren die Zahl 0, beim Testen auf Gleichheit werden diese beiden Zahlen als gleich betrachtet. Für das Rechnen mit +0, −0, +Inf und −Inf legt der Standard naheliegende und natürliche Regeln fest, wann immer es möglich ist.
Quelle: http://de.wikipedia.org/wiki/Null#Di..._auf_Computern
Grüße
Thomas
Lesezeichen