Контекст
Я прочитал в учебнике, что...
Сложение и вычитание не могут привести к переполнению. Цитировать,
Переполнение не может произойти после сложения, если одно число положительное, а другое отрицательное, поскольку добавление положительного числа к отрицательному числу дает результат, величина которого меньше (...).
Однако, преодолев некоторые проблемы, оказалось, что это не так, и я хочу подтвердить, что мои расчеты не являются какой-то ошибкой.
Например, контекст, в котором это применимо, для 4-битного сумматора-вычитателя, где M=1 (это означает вычитание с B), A = 0101 (+5) и B = 1010 (+10).
Взяв дополнение до 2 с B = 0110 (-10) и добавив числа, можно было сделать вычитание.
например, (5)+(-10)
0 1
+5 0101
-10 0110
-------------
result: 1011
results 2s: 0101 (-5)
C: 0 and V = 1.
Пара вопросов уже возникает только при выполнении этой задачи.
- Бит переполнения установлен несмотря на то, что переполнения нет (число находится в диапазоне)
- Учитывая, что диапазон составляет от -8 до 7, не будет ли целое число со знаком и целое число без знака также вызывать переполнение, например. (-1+9)
например,
-1 1110
+9 1001
-------------
result: 1111
result 2s: 0001 (1)
C: 1 and V: 1
Я заметил, что при C = 0 переполнения нет, а при C = 1 происходит переполнение.
Я читал, что отношение переполнения между двумя целыми числами без знака - это флаг переполнения V. С другой стороны, отношение переполнения между двумя целыми числами со знаком связано с флагом переноса C. Может ли это быть связано?
Наконец, обратите внимание, что существует переполнение между целым числом без знака и целым числом со знаком, несмотря на то, что приведенное мной утверждение противоречит этому.
TL;DR
Возможно ли переполнение между добавлением целого числа без знака и целого числа со знаком? Если да, то какое отношение между целым числом без знака и целым числом со знаком будет для переполнения (флаг C или V)?