Не ясно, являются ли начальные числа подписанными или без знака.Результаты будут идентичны, но рассуждения будут немного другими.
Если исходные числа не подписаны, первоначальное преобразование неверно.Ваши данные 8-битные, когда закодированы в двоичном виде как без знака.Если вы хотите преобразовать их в дополнение 2s без усечения, вам нужен дополнительный бит.Итак,
+0xfb = 0 11111011
+0xfa = 0 11111010
-0xfa = 1 00000110
Теперь мы можем вычислить сложение
(1)
0xfb 0 11111011
-0xfa + 1 00000110
----------
0 00000001
Мы можем заметить, что переполнения нет.Есть выполнение, но мы можем просто проигнорировать его в дополнении 2s.И сумма положительного и отрицательного числа не может переполниться.
Теперь, когда два MSB равны, результат может быть сокращен до 8 бит, что дает очевидный результат 1.
Если начальные числаподписаны, большинство ваших расчетов правильно.Все операции могут быть выполнены на 8 битах.И результат будет на 8 битах.
(1)
0xfb 11111011
-0xfa + 00000110
----------
00000001
Выполнение выполнено, но не переполнено или не переполнено.Результат верный.