Особенности выполнения в ЭВМ сложения двоичных чисел без знака

Следует обратить внимание на важные особенности выполнения в ЭВМ сложения двоичных чисел.

Дело в том, что конечное число разрядов у используемых в ЭВМ двоичных чисел при выполнении арифметических операций может приводить к получению некорректных результатов.

Рассмотрим несколько примеров выполнения операции сложения четырехразрядных двоичных чисел без знака.

Наконец,

Таким образом, получается, что из-за конечного числа разрядов у двоичных чисел, представляющих слагаемые и результат операции сложения, в ряде случаев возможно получение некорректного результата этой операции. Это, конечно же, неприятный факт. Ведь мы хотим создать вычислитель, выдающий результаты, в которых мы должны быть полностью уверены. Следовательно, коль скоро мы таких случаев, как приведен выше, в принципе избежать и предсказать не можем, то становится необходимым определить четкий способ обнаружения ситуаций, когда результат выполненной операции оказывается неправильным, для того чтобы такое событие в выполняемой программе соответствующим образом обрабатывать.

Можно сформулировать следующее правило.

Если при сложении двоичных чисел без знака происходит перенос из старшего разряда, то результат этой арифметической операции оказывается неправильным.

Особенности выполнения в ЭВМ сложения двоичных чисел со знаком

Рассмотрим теперь примеры выполнения операции сложения четырехразрядных двоичных чисел со знаком.

Приведенные примеры иллюстрируют следующие ситуации. Результат операции сложения двух двоичных чисел со знаком, когда отрицательные числа представляются двоично-дополнительным кодом, будет правильным в следующих случаях:

• когда при выполнении операции нет ни переноса в старший разряд, ни переноса из старшего разряда,

а также (см. пример «д»),

• когда происходят одновременно оба таких переноса — и в старший разряд, и из старшего разряда.

Однако результат выполненной операции сложения двоичных чисел со знаком всегда будет неправильным, если при сложении двух двоичных чисел со знаком происходит:

  • или перенос в старший разряд (примеры «а» и «б»),
  • или перенос из старшего разряда (примеры «в» и «г»),

то есть когда имеет место один из этих переносов, а не оба

одновременно.

Такую ситуацию, когда имеет место один из указанных переносов (перенос в старший разряд или перенос из старшего разряда), еще называют арифметическим переполнением.

Правило обнаружения ошибки при сложении чисел со знаком можно более коротко переформулировать следующим образом.

Если при сложении двоичных чисел со знаком произошло арифметическое переполнение, то результат операции является неправильным.

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >