Drucken unsigned long long int-Wert Type Gibt Seltsame Ergebnisse

Ich habe ein problem während benutzen von der printf Funktion drucken Sie die Werte vom Typ unsigned long long int

Ich habe keine Ahnung, was falsch ist. Ich bin mit Dev-Cpp 4.9.9.2 und Visual Studio 2010 Professional (ich weiß, dass es nicht C-compiler, aber egal, versuchen wollte) auf Windows 7 Professional 64-bit. Für anzeigen, die ich verwendet %llu modifier (nach Wie Sie von printf () unsigned long long int(format specifier für unsigned long long int)?) aber ich habe auch versucht I64d an, die keine Wirkung...


Erstens, ich wollte nur drucken minimum-und maximum-Wert unsigned long long int (mit ULONG_MAX aus limits.h)

printf("unsigned long long int: \n%llu to %llu \n\n", 0, ULONG_MAX);

Gibt:

unsigned long long int: 18446744069414584320 zu 1580552164021 (Dev-Cpp)

unsigned long long int: 18446744069414584320 0 (Visual Studio)


Dann habe ich versucht mit printf drucken zwei Nullen

printf("unsigned long long int: \n%llu to %llu \n\n", 0, 0);

Gibt:

unsigned long long int:
0 bis 1580552164021 (Dev-Cpp)

unsigned long long int: 0 0 (Visual Studio)


Habe auch versucht zwei ULONG_MAX Werte

printf("unsigned long long int: \n%llu to %llu \n\n", ULONG_MAX, ULONG_MAX);

Gibt:

unsigned long long int: 18446744073709551615 zu 1580552164021 (Dev-Cpp)

unsigned long long int:
18446744073709551615 0 (Visual Studio)


Warum verhält Sie sich so? Könntest du es mir erklären?

InformationsquelleAutor browning0 | 2012-05-19

Schreibe einen Kommentar