2014年6月4日水曜日

RubyのFixnumとBignumの境界

RubyのFixnumは符号付き31ビットだと思っていたら、いつの間にか符号付き63ビットになっていた。厳密には環境依存らしいけど、今どきの64ビット環境なら大体は

irb> 0.size
=> 8
irb> (2**62-1).class
=> Fixnum
irb> (-2**62).class
=> Fixnum
なんだろう。家のMacはそうだった。

符号付き31ビットって±10億程度、100均の電卓に毛が生えた程度の精度しかないので、結構簡単にBignumになるのは嫌だなぁ、と思っていたのだけれど、63ビットあれば大抵のことはFixnumで片付くね。

0 件のコメント:

コメントを投稿