I assumed Fixnums in Ruby had the same object_id as their value. However, check this out:
Explanation: The Ruby interpreter and some of the core libraries are written in C. Fixnums have their bit representation shifted 1 position to the left, while assigning the lowest bit as 1 to designate that the object is a Fixnum.
0101 => 1011 # The object_id for 5 is 11. 0011 => 0111 # The object_id for 3 is 7. 0000 => 0001 # The object_id for 0 is 1.