title: Why is the `object_id` of a `Fixnum` an odd number?
body: <p><code>object_id</code> of a <code>Fixnum</code> is an odd number:</p>
  
  <pre><code>i=0; i += 1 while i.object_id.odd?
  # ^CIRB::Abort: abort then interrupt!
  i # =&gt; 495394962
  </code></pre>
  
  <p>while it seems that the <code>object_id</code> of any other object is an even number (<code>Bignum</code> included):</p>
  
  <pre><code>{}.object_id # =&gt; 70230978908220
  true.object_id # =&gt; 20
  false.object_id # =&gt; 0
  nil.object_id # =&gt; 8
  /regexp/.object_id # =&gt; 70230978711620
  :symbol.object_id # =&gt; 391528
  {/regexp/mou =&gt; Struct.new(:hello)}.object_id # =&gt; 70230987100840
  </code></pre>
  
  <p>Does this have something to do with some obscure optimization within the Ruby interpreter?</p>