title: what does float cf = *(float *)&ci; in C do?
body: <p>i'm trying to find out what this program prints exactly.</p>
  <pre><code>
  #include &lt;stdio.h&gt;
  int main() {
  float bf = -62.140625;
  int bi = *(int *)&amp;bf;
  int ci = bi+(1&lt;&lt;23);
  float cf = *(float *)&amp;ci;
  printf(&quot;%X\n&quot;,bi);
  printf(&quot;%f\n&quot;,cf);
  }
  </code></pre>
  <p>This prints out:</p>
  <p>C2789000
  -124.281250</p>
  <p>But what happens line by line ? I do not understand .</p>
  <p>Thanks in advance.</p>