Ara.T.Howard wrote: > On Thu, 28 Jul 2005, Daniel Berger wrote: <snip> > maybe we are talking at cross purposes: as far as i know there is no > such as an > 'unsigned' Fixnum - we only have signed fixnums which loses one bit and the > VALUE/Fixnum thing which loses another. so i assumed the OP wanted to > know the > largest/smallest value that could be represented by a fixnum: > > harp:~ > cat a.rb > class Fixnum > N_BYTES = [42].pack('i').size > N_BITS = N_BYTES * 8 > MAX = 2 ** (N_BITS - 2) - 1 > MIN = -MAX - 1 > end > > p(Fixnum::MAX) > p(Fixnum::MAX.class) > p((Fixnum::MAX + 1).class) > > p(Fixnum::MIN) > p(Fixnum::MIN.class) > p((Fixnum::MIN - 1).class) > > harp:~ > ruby a.rb > 1073741823 > Fixnum > Bignum > -1073741824 > Fixnum > Bignum > > make sense? > >> Solaris 10: >> >> /* maxnum.c */ >> #include <stdio.h> >> #include <values.h> >> >> int main(){ >> printf("Max int: %i\n", MAXINT); >> printf("Max long: %li\n", MAXLONG); >> >> return 0; >> } >> >> djberge@~/programming/C-568>gcc -Wall -o maxnum maxnum.c >> djberge@~/programming/C-569>./maxnum >> Max int: 2147483647 >> Max long: 2147483647 >> >> djberge@~/programming/C-570>gcc -Wall -m64 -o maxnum maxnum.c >> djberge@~/programming/C-571>./maxnum >> Max int: 2147483647 >> Max long: 9223372036854775807 > > > sure - but these are ints not fixnums ? True. But if we add Fixnum::MIN/MAX, don't we have to add Integer::MIN/MAX and Bignum::MIN/MAX? What about Numeric or Float? My gut feeling is that this will lead to confusion. Maybe I'm wrong, though. Dan