2017-04-08 19 views
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++でチェックする可能性はありますか?例えば、いくつかのキャッチ構造を試してみてください。

+4

のために、この記事を参照してください。 –

+0

そうですね、このようなことをしたいと思っていましたが、もっと良い方法があるかどうか疑問に思いました。 – John

+0

'long long'は少なくとも64ビットですが、もっと長くてもかまいません。 64ビットvaribaleに 'int64_t'を使用したい場合。 – 12431234123412341234123

答えて

関連する問題