in reply to Re^2: Integer overflow
in thread Integer overflow

At least, on my 64-bit box, I get 2158052273

Yes, on my 64-bit build on linux (32-bit architecture) I'd have to use your solution.

On an architecture where sizeof(long)==8, I would think that neither solution would work. (This is probably, though not necessarily, an irrelevant observation in the context of what the op needs :-)

Cheers,

Replies are listed 'Best First'.
Re^4: Integer overflow
by almut (Canon) on Apr 24, 2009 at 00:53 UTC
    On an architecture where sizeof(long)==8, I would think that neither solution would work.

    I think (or actually, I'm pretty sure, because on my system, sizeof(long)==8) the pack/unpack solution would work, because pack "l" always (by definiton) is 32-bit, independent of what long might be on the system/C compiler, otherwise.

      pack "l" always (by definiton) is 32-bit

      Yes, you're right (should'er known). According to the docs, the i and I specifiers take note of what the C compiler regards as an 'int', but the l and L types are always 32-bit.

      Sheesh ... you just can't take *anything* for granted :-)

      Cheers,
      Rob