Арифметическое переполнение - PullRequest
0 голосов
/ 03 августа 2010

Почему арифметическое переполнение не может возникнуть при добавлении положительного и отрицательного числа с использованием дополнения до двух. Не могли бы вы привести пример с 8-разрядными знаковыми целыми числами (байтами).

Ответы [ 2 ]

2 голосов
/ 03 августа 2010

Это ... вроде как домашнее задание.Вы хотели использовать тег 'homework'?

Причина, по которой вы не можете переполниться, состоит в том, что добавление положительного x и отрицательного числа y приведет к значению z, такому abs(z) < abs(x) и abs(z) < abs(y).Поскольку x и y могут быть представлены без переполнения, а z на ближе к нулю, чем любое из них, z также может быть представлено без переполнения.

Любая параиз положительных и отрицательных чисел образуют пример.

1 голос
/ 03 августа 2010

Предположим, что у вас есть положительное число A и отрицательное число B.Их сумма S.Тогда:

S <= A && S >= B

Их сумма будет где-то посередине.Обратите внимание, что будет перенос, но это не переполнение (неправильная сумма).

...