grösser / kleiner bei "unsigned" long
Verfasst: 13.02.2005 17:02
schön langsam finde ich es etwas "lästig"
das PB keine unsigned kann.
verwende viele Sourcen von anderen Sprachen ... und die meiste Zeit geht drauf weil PB das nicht unterstützt! (echt ne tolle Fehlerquelle!)
aber das wurde ja schon zig mal durchdiskutiert .... also lassen wir das ...
So nun die Frage ...
arbeite nun mit Soucen die mit unsigned longs arbeiten ... bräuchte da tipps wie man das eleganter (& soll auch sehr schnell sein) machen (event per ASM) kann..
bräuchte
">" "<" "<=" ">=" "<>"
hab das für grösser gemacht .... aber das kanns doch nicht sein oder doch ?????
muss ich da für jeden fall so ne procedure starten ??
Andi256

verwende viele Sourcen von anderen Sprachen ... und die meiste Zeit geht drauf weil PB das nicht unterstützt! (echt ne tolle Fehlerquelle!)
aber das wurde ja schon zig mal durchdiskutiert .... also lassen wir das ...

So nun die Frage ...
arbeite nun mit Soucen die mit unsigned longs arbeiten ... bräuchte da tipps wie man das eleganter (& soll auch sehr schnell sein) machen (event per ASM) kann..
bräuchte
">" "<" "<=" ">=" "<>"
Code: Alles auswählen
DataSection
a:
;(Zahl = 286331152)
;$11111110
Data.b $10,$11,$11,$11
b:
;(Zahl = 4294967294)
;$FFFFFFFE
Data.b $FE,$FF,$FF,$FF
EndDataSection
Procedure grosser(a,b)
aHigh= (a>>16)&$FFFF
aLow = a&$FFFF
bHigh= (b>>16)&$FFFF
bLow = b&$FFFF
ret=1
If blow<alow
ret=0
EndIf
If blow>alow
ret=1
EndIf
If bhigh<ahigh
ret=0
EndIf
If bhigh>ahigh
ret=1
EndIf
ProcedureReturn ret
EndProcedure
a = PeekL(?a)
b = PeekL(?b)
Debug ("Hex")
Debug ("a :"+Hex(a))
Debug ("b :"+Hex(b))
Debug ("Dez")
Debug ("a :"+Str(a))
Debug ("b :"+Str(b))
Debug" ok ... PB rechnet signed (also in meinem Fall Falsch ?) ..... "
If a < b
Debug ("b grösser a")
Else
Debug ("b nicht grösser a")
EndIf
Debug" ok ... unsigned ..... "
If grosser(a,b)
Debug ("b grösser a")
EndIf
muss ich da für jeden fall so ne procedure starten ??
Andi256