Hallo, ich habe ein variable von type unsigned long (d.h. max (2^32-1) kann er speichern) wenn ich die Gleichung ((2^32*4)/100) mit irgeneinem C Compiler ausführen lasse, stimmt das Ergebnis! aber geladen auf meinem 32 bit Mikrocontroller stimmt das Ergebnis nicht mehr ==> WARUM??? MfG
Vielleicht deshalb, weil ^ in C ein XOR ist und nicht die Potenzfunktion? Ansonsten: Poste deinen richtigen Code. Wenn er zu lang ist, dann kürze ihn oder mache ein Exzerpt, welches für sich alleine kompilierbar und lauffähig ist. Lass es laufen und stell sicher, dass der Fehler immer noch enthalten ist, und dann poste es.
Hallo, Anders gefragt: kann es sein das wegen des Diassemblers, der Mikrocontroller erst die Gleichung ((2^32*4) ausführt, und dann später durch 100 teilt? das würde dann alles erklären! MfG
Der Disassembler hat damit nichts zu tun. Die Berechnung (2^32*4) wird zuerst ausgeführt, weil sie in Klammern steht. Beachte den Hinweis von Karl heinz bzgl. dem ^ Operator!
Hallo, aber Moment in meinem Code steht nicht (^) sondern die math_Funktion: pow(2,32)
HArdware'Ling wrote: > Hallo, > > aber Moment in meinem Code steht nicht (^) sondern die math_Funktion: > pow(2,32) Und woher sollen wir das wissen? Poste deinen originalen Code! Alles andere ist Kaffeesudleserei (um nicht wieder die berühmte Kristallkugel zu bemühen).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.