Bignum objects hold integers outside the range of Fixnum. Bignum objects are created automatically when integer calculations would otherwise overflow a Fixnum. When a calculation involving Bignum objects returns a result that will fit in a Fixnum, the result is automatically converted.
For the purposes of the bitwise operations and , a Bignum is treated as if it were an infinite-length bitstring with 2’s complement representation.
bignum.c lib/mathn.rb lib/rational.rb