>>438
最後の1行は変じゃない?
Rubyのオブジェクトは基本的には構造体へのポインタで表されているが、Fixnum
は高速化のため特別扱いしている。ポインタの最下位bitが1だったらFixnumとみなして
右に1bitシフトした値をFixnumとする。よってFixnumは31bitであらわすことができる範囲の
数値ということになる。
最下位bitが0だったらポインタとみなす。
(ポインタが奇数アドレスにalignされることはありえない)