Why aren't large numbers limited to 64 bit values?

Geoff Canyon gcanyon at gmail.com
Fri Dec 11 15:00:56 EST 2015


Thanks, I've written a few myself. I'll post them to the forum.

gc

On Thu, Dec 10, 2015 at 2:09 PM, <dunbarx at aol.com> wrote:

> There are handlers developed to handle numbers of any length. See the
> forums. "Routines for very large numbers"
>
>
> Craig
>
>
>
> -----Original Message-----
> From: Peter TB Brett <peter.brett at livecode.com>
> To: How to use LiveCode <use-livecode at lists.runrev.com>
> Sent: Thu, Dec 10, 2015 1:47 pm
> Subject: Re: Why aren't large numbers limited to 64 bit values?
>
> On 2015-12-10 17:54, Geoff Canyon wrote:
> > LiveCode works in 64 bit numbers, so why does
> >
> > put 10000000000 * 1000000000000000000000000000000
> >
> > result in
> >
> > 10000000000000000303786028427003666890752
> >
> > which is close to the right answer, instead of some 18 digit value?
>
> When numbers are too large to represent exactly, LiveCode automatically
> shifts to using 64-bit IEEE floating point representation.
> Floating-point numbers store a number in three pieces:
>
> 1) a sign bit
> 2) an exponent (11 bits)
> 3) a mantissa (52 bits)
>
> This is a bit like writing decimal scientific notation.  The "true"
> value is 1.<MANTISSA> * 2^<EXPONENT>, modified by the SIGN.
>
> This means that much much larger numbers than 2^64 can be represented in
> only 64 bits, but at the cost of loss of accuracy (because the mantissa
> is only 53 bits).  As you've noticed, the result of your calculation is
> only *close to* the right answer.  It can accurately represent any
> number that only requires 53 bits of precision.
>
> See also
> https://en.wikipedia.org/wiki/Double-precision_floating-point_format
>
>        Peter
>
> --
> Dr Peter Brett <peter.brett at livecode.com>
> LiveCode Open Source Team
>
> LiveCode on reddit! <https://reddit.com/r/livecode>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your
> subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>



More information about the Use-livecode mailing list