C言語で加算・乗算のオーバーフローを検出するにはどうすればいいでしょうか。
アセンブラだとオーバーフローフラグがあります。
Adaはオーバーフローしないように数値指定してしまいます。
LISPやJavascriptは多めに精度を取っています(というかdouble?)。
例えば
uint64_t sum = (2 << 63) + 1;
uint32_t a = (2 << 31) + 2;
uint32_t b = (2 << 31) + 3;
sum += a * b;
のときオーバーフローすると思うのですが、どうすればいいでしょうか?
ご回答のほど、よろしくお願いいたします。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/08 08:19