2017-04-08 3 views
2

Ich bin ein kleines Programm mache grundlegende mathematische Operationen Lösung (*, /, +, -) und ich bin mit long long int (64-Bit-Zahl), so kann ich mit großen mathematischen Operationen tun Zahlen.C++ long long int Überlauf/Unter

Aber es gibt ein Problem. Ich kann die Operanden überprüfen, wenn sie nicht über- oder unterschritten sind (mit LONG_LONG_MAX und LONG_LONG_MIN). Aber wenn ich (zum Beispiel) zwei sehr große Zahlen (die Überlauf von long long int verursachen) multiplizieren die LONG_LONG_MAX Überprüfung funktioniert nicht. Eher ist das Ergebnis für -4.

Gibt es eine Chance in C/C++? Zum Beispiel versuchen einige Fangkonstruktion?

+4

Sie dies durch Überprüfung fangen kann, ob (zum Beispiel) 'b> MAX/a'. –

+0

Ja, ich wollte so etwas machen, aber ich fragte mich, ob es einen "besseren" Weg gibt. – John

+0

'lang lang' ist mindestens 64 Bit, aber es könnte mehr sein. Wenn Sie eine 64 Bit Varibale haben wollen, benutzen Sie 'int64_t'. – 12431234123412341234123

Antwort

Verwandte Themen