【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131at TECH
【ISO/ANSI/JIS】 C言語なら俺に聞け! Part 131 - 暇つぶし2ch451:デフォルトの名無しさん
07/05/01 18:00:03
宿題の答えとしては条件に合わない方法

unsinged long c = a + b;
if(c < a) {
 puts("Overflow");
} else {
 puts("(a+b) OK");
}

∵)
オーバーフローしたとすると、
c = a + b - m (m = 0x100000000)
c >= a だと仮定すると b >= m となるが、b < m なので矛盾する。
従って、オーバーフローした場合は必ず c < a となる。

逆に、オーバーフローしていない場合に
必ず c >= a になるのは自明。

∴ c < a ならばオーバーフローしている。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch