From: seebs@... (Peter Seebach) Date: 2007-04-30T13:08:26+09:00 Subject: Re: Why is 0x7FFFFFFF Bignum and not Fixnum ? In message , Mr Magpie writes: >>> 0x3FFFFFFF.class >=> Fixnum >>> 0x3FFFFFFF.size >=> 4 >As expected, this comfortably fits into 32 bits, but so should this : > >>> 0x7FFFFFFF.class >=> Bignum >>> 0x7FFFFFFF.size >=> 4 >1) Why has it gone to Bignum ? it shouldn't do this until 0x80000000. Because 0x40000000 is either the sign bit or the magic flag. I don't know how Ruby does that part, but that's what I'd expect. There's no "unsigned" types here. -s