typecasting zu unsigned in C

int a = -534;
unsigned int b = (unsigned int)a;
printf("%d, %d", a, b);

Drucke -534, -534

Warum ist die Umwandlung nicht stattfindet?

Ich erwartet, dass es -534, 534


Wenn ich den code ändern, um

int a = -534;
unsigned int b = (unsigned int)a;
if(a < b)
  printf("%d, %d", a, b);

seine nicht drucken nichts... nach all a ist weniger als b??

  • Sie möchten möglicherweise überprüfen Sie Ihre compiler docs und sehen, ob es eine option zum überprüfen printf-format-Bezeichner. gcc -Wformat, die hätten gewarnt, Sie über die %d vs. %u, was zur compile-Zeit.
  • stackoverflow.com/questions/50605/...
  • Dies sollte nicht über einen C++ - tag.
InformationsquelleAutor Lazer | 2010-03-01
Schreibe einen Kommentar