From: "Ara.T.Howard" Date: 2005-07-28T06:36:41+09:00 Subject: Re: Fixnum::{MIN,MAX} --8323328-1742129316-1122500183=:4734 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1742129316-1122500183=:4734" This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323328-1742129316-1122500183=:4734 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE On Thu, 28 Jul 2005, Daniel Berger wrote: > Ara.T.Howard wrote: >> On Thu, 28 Jul 2005, Nikolai Weibull wrote: >>=20 >>> This may be silly, considering that Fixnums are converted to Bignums if >>> necessary, but is there no room for having MIN and MAX constants for >>> Fixnums? This is my C talking, but it=92s kind of nice to have these >>> kinds of limits for certain algorithms and =93default=94 values. Any >>> input?, >>> nikolai >>=20 >>=20 >> awesome! i have this everywhere: >>=20 >> class Fixnum >> N_BYTES =3D [42].pack('i').size >> N_BITS =3D N_BYTES * 8 >> MAX =3D 2 ** (N_BITS - 2) - 1 >> MIN =3D -MAX - 1 >> end >>=20 >> cheers. >>=20 >> -a > > Signed or unsigned max? maybe we are talking at cross purposes: as far as i know there is no such a= s 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 =3D [42].pack('i').size N_BITS =3D N_BYTES * 8 MAX =3D 2 ** (N_BITS - 2) - 1 MIN =3D -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 > #include > > 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 ? cheers. -a --=20 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D | email :: ara [dot] t [dot] howard [at] noaa [dot] gov | phone :: 303.497.6469 | My religion is very simple. My religion is kindness. | --Tenzin Gyatso =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D --8323328-1742129316-1122500183=:4734-- --8323328-1742129316-1122500183=:4734--