thanx a lot Jeff Loucks  . we will try it out.

Jeff Loucks wrote:

Int32 and UInt32 on Palm hold the same as a signed and unsigned 32 bit integer on every other platform.

signed 32 bit integer = -(2^31)..(2^31-1) = (2-2147483648..2147483647
unsigned 32 bit integer = 0..(2^32-1) = 0..4294967295

You probably did something like the following:

Int32 result = 370 * 370;   // you expect 136900, but get 5828

The size of the left hand side of your assignment is not the problem. We know that 370 * 370 = 136900. However, the compiler computed the right hand side as an int, which is probably set to 2 byte (16 bits), not 4 byte (32 bits). The 16 bit int result is missing the top 2 bits of the result you expect. This truncated result is then placed in the 32 bit integer 'result'.

Use this, instead:

Int32 x = 370L * 370L;   // right hand side is computed as a 32 bit int

You asked about larger integers. Most compilers these days understand at least 'long long' or QWord, which is an 8 byte (64 bit) integer. This is not a native size on Palm, but is supported in code.

On 3/1/07, *Anoop* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Hi,
        Can anyone tell us how much value Int32 and UInt32 can hold in
    palm
    . Is there any data type which can hold bigger than this.

    for eg we were not able to hold the square of the no: 370 in UInt32 ,
    long , Int32.
    Waiting for ur speedy reply.

    thanx
    anoop


    --
    For information on using the ACCESS Developer Forums, or to
    unsubscribe, please see
    http://www.access-company.com/developers/forums/




--
[Jeff Loucks] -- For information on using the ACCESS Developer Forums, or to unsubscribe, please see http://www.access-company.com/developers/forums/


--
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/

Reply via email to