2
私は基本的な数学演算(*
、/
、+
、-
)を解くための小さなプログラムを作ってるんだと私はlong long int
(64ビット番号)を使用していますので、私は大きなと数学の操作を行うことができます数字。C++のlong long int型のオーバーフロー/アンダーフロー
しかし、問題があります。オペランドが上限または下限でない場合(LONG_LONG_MAX
およびLONG_LONG_MIN
を使用)、オペランドをチェックできます。 しかし、私が(例えば)long long int
のオーバーフローを引き起こす2つの非常に大きな数字を掛け合わせると、LONG_LONG_MAX
のチェックは機能しません。むしろ結果は-4です。
C/C++でチェックする可能性はありますか?例えば、いくつかのキャッチ構造を試してみてください。
のために、この記事を参照してください。 –
そうですね、このようなことをしたいと思っていましたが、もっと良い方法があるかどうか疑問に思いました。 – John
'long long'は少なくとも64ビットですが、もっと長くてもかまいません。 64ビットvaribaleに 'int64_t'を使用したい場合。 – 12431234123412341234123