Code: Select all
a.l = $ffffffff
Code: Select all
a.l = ~$ffffffff
Code: Select all
a.l = $ffffffff
Code: Select all
a.l = ~$ffffffff
One of the very best ways to irritate the team is to bump bug reports.Please read before submitting a bug report! wrote:(12) Once a bug as been reported, please don't 'bump' the topic by adding a new post like 'this bug is till not fixed in the new release'. We are aware about it. We read all the bugs, if it's not set as 'Fixed', then we didn't found a solution for now.
You are really clever so you know this bug is easy to fix...netmaestro wrote:One of the very best ways to irritate the team is to bump bug reports.Please read before submitting a bug report! wrote:(12) Once a bug as been reported, please don't 'bump' the topic by adding a new post like 'this bug is till not fixed in the new release'. We are aware about it. We read all the bugs, if it's not set as 'Fixed', then we didn't found a solution for now.
Code: Select all
A.L = -1
A ! (-1)
Code: Select all
a.l=$ffffffff
a=~a
Debug a
Probably this will be disappointment for you, but fail of your project is always your fail, not fail of software tools you used for it (used human tools may be a source of fail, but not sw ^^).Olliv wrote:Mh...
Ten years ago, I had a first project on PureBasic which did not work for a problem of background on 3D I could not absolutely solve.
Code: Select all
; Compile this in x86 mode and then in x64 mode
EnableExplicit
#Max = $FFFFFFFE
Procedure.s TestI(Value.i)
CompilerIf #PB_Processor_x64
If Value & $ffffffffffffffff > #Max & $ffffffffffffffff
CompilerElse
If Value & $ffffffff > #Max & $ffffffff
CompilerEndIf
ProcedureReturn Str(Value) + " is greater than " + Str(#Max)
Else
ProcedureReturn Str(Value) + " is lower than " + Str(#Max)
EndIf
EndProcedure
Procedure.s TestL(Value.l)
If Value & $ffffffff > #Max & $ffffffff
ProcedureReturn Str(Value) + " is greater than " + Str(#Max)
Else
ProcedureReturn Str(Value) + " is lower than " + Str(#Max)
EndIf
EndProcedure
Procedure.s TestQ(Value.q)
If Value & $ffffffffffffffff > #Max & $ffffffffffffffff
ProcedureReturn Str(Value) + " is greater than " + Str(#Max)
Else
ProcedureReturn Str(Value) + " is lower than " + Str(#Max)
EndIf
EndProcedure
Debug TestI($4)
Debug TestL($4)
Debug TestQ($4)
The x86 Result wrote: [12:39:46] [Debug] 4 is greater than 4294967294
[12:39:46] [Debug] 4 is greater than 4294967294
[12:39:46] [Debug] 4 is lower than 4294967294
The Result of TestI() and TestL() on a x86 system will be wrong. On a x64 system all results are okay.The x64 Result wrote: [12:39:46] [Debug] 4 is lower than 4294967294
[12:39:46] [Debug] 4 is lower than 4294967294
[12:39:46] [Debug] 4 is lower than 4294967294
Code: Select all
#QMax = $FFFFFFFFFFFFFFFE
If Value & $ffffffffffffffff > #QMax & $ffffffffffffffff