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?
Sie dies durch Überprüfung fangen kann, ob (zum Beispiel) 'b> MAX/a'. –
Ja, ich wollte so etwas machen, aber ich fragte mich, ob es einen "besseren" Weg gibt. – John
'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