Ich lese, dass die Umwandlung von int
zu long long int
Förderung ist und daher dachte, dass es kein Problem geben sollte, da es keinen Datenverlust gibt, im Gegensatz zur umgekehrten Konvertierung.Warum gibt die implizite Konvertierung von int in long long int unerwartete Antworten in C++?
Aber wenn ich zwei int
s großen Wert multipliziere und es in long long int
speichern, zeigt es mir negative Zahl.
ZB:
int a=1000000, b=1000000;
long long int c=a*b;
cout<<c;
Der obige Code gibt mir einen negativen Wert. Kann jemand erklären warum?
Das ist, weil Sie INTS verwenden, um eine Operation zu machen, die zu einem Rückgabewert führt, der auch ein Int ist, der möglicherweise überläuft, und dann haben Sie die Förderung, die bereits zu spät ist. –
Ich habe das gleiche mit C versucht, wo ich den Platzhalter "% lld" in printf zum Drucken verwendet habe. Selbst dann zeigt es mir einen negativen Wert. – Bharg
möglicherweise ein Duplikat http://stackoverflow.com/questions/31662792/multiplication-of-two-integers-in-c – Ap31