title: Long type 64bit linux
body: <p>Very simple questions guys, but maybe I'm just forgetting something.
  In 64bit linux, a long is 8bytes correct?
  If that's the case, and I want to set the 64th bit, I can do the following:</p>
  
  <pre><code>unsigned long num = 1&lt;&lt;63;
  </code></pre>
  
  <p>Whenever I compile this, however, it gives me an error saying that I'm left shifting by more than the width.
  Also, if I wanted to take the first 32bits of a long type (without sign extension), can I do:</p>
  
  <pre><code>num = num&amp;0xFFFFFFFF;
  </code></pre>
  
  <p>or what about:</p>
  
  <pre><code>num = (int)(num);
  </code></pre>
  
  <p>Thank you.</p>