5
なぜ符号なし整数オーバーフローは動作が定義されていますが、符号付き整数オーバーフローは定義されていないのですか?
符号なし整数オーバーフローは、CおよびC ++標準の両方で明確に定義されています。たとえば、C99標準(§6.2.5/9)は 結果の符号なし整数型で表すことができない結果は、結果の型で表すことができる最大値よりも1大きい数を法として減じられるため、符号なしオペランドを伴う計算は決してオーバーフローできません。 ただし、どちらの規格も、符号付き整数オーバーフローは未定義の動作であると述べています。ここでも、C99標準(§3.4.3/1)から 未定義の動作の例は、整数オーバーフローでの動作です この矛盾の歴史的または(さらに良い!)技術的な理由はありますか?