Long Variablen - Komisches Verhalten [erledigt]
Übersicht

![]() |
ThunderBetreff: Long Variablen - Komisches Verhalten [erledigt] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
hab gerade mein neues Projekt getestet und mir ist aufgefallen, dass ausnahmsweise Mal nicht ich einen Fehler verursache, sondern BlitzMax. Zumindest glaube ich das. Aber ich wollte nachfragen, weil ich sonst nie mit 64 Bit Zahlen arbeite. Prinzipiell sollten sie sich so verhalten, wie Int oder? Nur mit größerem Wertebereich. BlitzMax: [AUSKLAPPEN] Strict Der Code gibt -1 aus, obwohl die Zahl, die in l gespeichert wird, positiv ist. Kann das jemand bestätigen? Und das liegt wahrscheinlich nicht Mal an Sgn (das ist eine C Funktion, die korrekt arbeiten sollte), sondern an der Art, wie die Zahl von BlitzMax gespeichert wird: Code: [AUSKLAPPEN] mov dword [ebp-8],-561467465
mov dword [ebp-4],-1 Was offenbar 12323434423 entsprechen soll. Noch interessanter: Hängt man an den Code oben noch: BlitzMax: [AUSKLAPPEN] For l = 10000000000 To 20000000000 diese Schleife an, dann geht alles glatt. Steht sie alleine: BlitzMax: [AUSKLAPPEN] Strict wird sie nicht betreten, obwohl beide gleichwertigen Assemblercode erzeugen. Meiner Meinung nach ist da mindestens ein Bug in der Verarbeitung von Long Datentypen und ich hab nicht so Lust, Marks Fehler zu finden... Bugreport machen? Danke ![]() Edit: Mir ist gerade eingefallen, dass BlitzMax ja die Zahlen als Int parst oder so. Und wenn man an die Zahlen :Long hängt, so gibt es zumindest Problem 1 nimmer. Aber die Schleife funktioniert allein stehend immer noch nicht. |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
- Zuletzt bearbeitet von Thunder am Do, Jun 27, 2013 8:58, insgesamt einmal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie du selbst schon festgestellt hast parst BMax leider lle Zahlen erst mal nach INT.
Um die Schleife korrekt auszuwühren musst du also auch den Schleifenkopf von 10000000000:long nach 200000000000:long definieren. Der Explizite Cast sorgt dann für richtige Verhältnisse. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Edit: Tut mir leid. Hast recht...
Ich hab leider wieder meinen Modulordner nicht im Griff ![]() |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group