working with binary numbers with bitwise operators
Dar Scott
dsc at swcp.com
Sun May 30 01:16:26 CDT 2004
On Saturday, May 29, 2004, at 11:33 PM, Alejandro Tejada wrote:
> If i convert this 48 bit binary number in decimal
> then i get a negative number:
>
> put baseconvert
> (010011001100001110101010101101100101110111010101,2,10)
>
> results in
> -2864078293
There may be two factors here.
Bugzilla 38 describes a problem in base conversions to base 10.
The baseconvert() function uses a 32 bit environment.
>
> and i've noticed that the function "bitnot" produces
> this result:
>
> put bitnot 35 produces 4294967260
> put bitnot 52 produces 4294967243
The bit-logical operators use a 32-bit environment.
If you need more than 32 bits you might need to build up multiple
32-bit numbers or (as you did for shifting) use strings of 0 and 1.
If you need to use bit shifting (and rotating) with the bit logical
operators, you might want to make the number version.
Dar Scott
More information about the use-livecode
mailing list