Отказ от ответственности: я не эксперт (или даже пользователь этого уровня кода :)).
Я считаю, что флаг переноса имеет смысл для неподписанных данных, а флаг переполнения имеет смыслдля подписанных данных.
Оба будут сгенерированы всегда, но вы сами должны определить, считаете ли вы значения без знака или дополнением до двух, так что вам решать, на какой флаг вы обращаете внимание.
From: http://en.wikipedia.org/wiki/Overflow_flag
Внутренне флаг переполнения обычно генерируется исключительным или внутренним переносом в и из знакового бита.Поскольку бит знака совпадает с самым старшим битом числа, считающегося беззнаковым, флаг переполнения является «бессмысленным» и обычно игнорируется, когда такие числа складываются или вычитаются.
Бит знака являетсястарший значащий бит (самый дальний слева).
Исключительно или (XOR):
- Если ни то, ни другое: 0
- Если либо: 1
- Если оба: 0
Перенос в знаковый бит происходит, когда 2-й старший значащий бит, когда он добавлен, создает значение, которое переносится в следующий столбец.
Выполнение - это то, нужно ли выполнять перенос при сложении старших значащих битов (знаковых битов, если числа являются дополнением к двум).
XOR эти два значения, и вы должны получить значение дляВаш флаг переполнения после данного добавления.