title: Bitwise left shifting of integer by more than 31 times
body: <pre><code>main()
  {
     int i=-1,j=32,k;
     k=i&lt;&lt;j;
     printf("i=%d j=%d k=%d\n",i,j,k);
  }
  </code></pre>
  
  <p>output:</p>
  
  <pre><code>i=-1 j=32,k=-1
  </code></pre>
  
  <p>If I am taking j=33 then <code>k=-2</code> and if j=34 then k=-4.its repeating after 32 times left shift i.e  if j=64,k becomes -1 and if j=65 then k=-2.but logically bit should be lost i.e output is 0.what is happening here.</p>
  
  <p>Sorry for asking such a question. I am beginner so I'm unable to understand what the compiler does here. Can you explain?</p>