title: What is wrong with printf("%llx")?
body: <p>I have this piece of code that is challenging all my knowledge of C.
  Here I have :</p>
  
  <pre><code>int main(void){
      unsigned long long int massage ;
  
      scanf("%llX", &amp;massage); //input: 0x1234567890abcdef
      printf("%llX", massage);
      return 0;
  }
  </code></pre>
  
  <p>On my "64bit - Corei5 - Fedora - GCC" it prints out exactly what I fed it. but on my buddy's system (32bit, MS XP, MinGW) it prints <code>90ABCDEF</code>. I don't understand why. does anyone know?</p>
  
  <p>BTW: <code>sizeof(unsigned long long int)</code> on his system is 8.</p>