|
Ralph Hempel wrote:
Andrew Gorges wrote:print(bit.band(3, 0xFFFFFFFF)) -- displays 0What does bit.band( 3, 1 ) result in? Are we seeing the result of truncation and endianness issues of what we assume is a 32 bit value that is actually a 64 bit value when compiled?
Just got a copy of Lfw 5.1.4.20. The problem is probably in TOBIT() in lbitlib.c. It looks rather complex, I haven't tried picking it apart yet...
Using bit.cast to test TOBIT() by itself: > print(bit.cast(0x7fffffff)) 2147483647 > print(bit.cast(0xffffffff)) -2147483648Which is supposed to be -1 with 32-bit ints. 0xffffffff is correctly represented in Lua, since:
> print(0xFFFFFFFF) 4294967295So, something wrong is happening when TOBIT() tries to convert the double to an integer.
BTW, I think the LfW page should also point to the Google project for regular downloads, since it is much faster.
-- Cheers, Kein-Hong Man (esq.) Kuala Lumpur, Malaysia