title: How implicit conversion work with signed character and unsigned int?
body: <pre><code>#include&lt;stdio.h&gt;
  void main()
  {
      unsigned x = 1;
      signed char y = -1;
      if(x  &gt; y)
          printf("x &gt; y");
      else if(x == y)
          printf("x == y");
      else
          printf("x &lt; y");
      printf("\n");
      printf("%d",(signed char)x);
      printf("\n");
      printf("%d",(unsigned int)y);
  }
  
  OUTPUT:
  x &lt; y
  1
  -1
  </code></pre>
  
  <p>I expected the output to be x == y as during comparison signed character is supposed to be converted to unsigned int?
  Please explain me how x &lt; y...</p>