title: Is conversion int -> unsigned long long defined by the standard
body: <p>I can't find the exact specification of how <code>int</code> value is converted to <code>unsigned long long</code> in the standard. Various similar conversions, such as int -> unsigned, unsigned -> int (UB if negative), unsigned long long -> int, etc. are specified</p>
  
  <p>For example GCC, <code>-1</code> is converted to <code>0xffffffffffffffff</code>, not to <code>0x00000000ffffffff</code>. Can I rely on this behavior?</p>