title: Integer constant is too large for its type AND invalid operands to binary operators
body: <p>I'm using <code>double long</code> in my 64 bit computer and <code>sizeof(double long)</code> is <code>16 bytes</code>.
  So I do the following assignment:</p>
  
  <pre><code>  long double f = 0xA0000000000000000000000000000000; // 32 characters in hex
  </code></pre>
  
  <p>and I get this warning: <code>warning: integer constant is too large for its type</code>. That warning doesn't seem correct, my constant can be easily saved in a 128bit value. So, why do I get the warning?</p>
  
  <p>I also have this code:</p>
  
  <pre><code>  long double tmp = 0x90000000CCCCCCCC0000000000000000;
    long double res = (f &amp; tmp);  // where f is the previously defined variable
  </code></pre>
  
  <p>and I get the following error <code>error: invalid operands to binary &amp;</code>. Why ?</p>