Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Сложение и вычитание. При сложении двоичных кодов чисел А и В имеют место четыре основных и два особых случая:




В большинстве компьютеров операция вычитания не используется. Вместо нее производится сложение уменьшаемого с обратным или дополнительным кодом вычитаемого. Это позволяет упростить конструкцию АЛУ.

При сложении двоичных кодов чисел А и В имеют место четыре основных и два особых случая:

1. Числа А и В положительные. При суммировании складываются все разряды, включая разряд знака. Так как знаковые разряды положительных слагаемых равны нулю, разряд знака суммы тоже равен нулю.

Например: A= 538 , B = 128

538 +128 =001010112 + 000010102 = 001101012 = 658

001010112

+ 000010102

¾¾¾¾¾¾

= 001101012

Здесь получен правильный результат.

2. А положительное, число B отрицательное и по абсолютной величине больше, чем А. Например: 128 +(– 538 ) = – 418 = 000010102 + 010101002 =010111102

000010102

+ 010101002

¾¾¾¾¾¾

= 010111102

Получен правильный результат в обратном коде. При переводе числа в прямой код биты цифровой части результата инвертируются, т.е. 101000012= – 418:

010111102 à 101000012

3. А положительное, число B отрицательное и по абсолютной величине меньше, чем А.

Например: 538 +(-128 ) = 418 = 001010112 + 011101012 = 101000002

001010112

+ 011101012

¾¾¾¾¾¾

= 101000002

Компьютер исправляет полученный неправильный результат в прямом коде (–408 вместо 418) переносом единицы из знакового разряда в младший разряд суммы:

101000002 à 001000012

4. Числа А и В оба отрицательные.

Например: (–58) + (–58) = –128 = 011110102 + 011110102 = 111101002

011110102

+ 011110102

¾¾¾¾¾¾

= 111101002

Полученный первоначально неправильный результат (получен обратный код числа –138 вместо обратного кода числа –128) компьютер исправляет ошибку переносом единицы из знакового разряда в младший разряд суммы:

111101002 à (перенос 1) à 011101012 (обратный код числа)

При переводе результата в прямой код биты цифровой части числа инвертируются: 011101012 à 100010102 (прямой код) = –128 = –1010

 

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

 

5. Числа А и В положительные, но сумма А+В больше, либо равна 2n–1, где n – количество разрядов формата чисел (для однобайтового формата n=8, 2n–1 = 27 =128). Например: 1208 + 1228 = 010100002 + 010100102 =101000102= 2428= -428

010100002

+ 010100102

¾¾¾¾¾¾

= 101000102

Семи разрядов цифровой части числового формата недостаточно для размещения восьмиразрядной суммы (2428 = 101000102), поэтому старший разряд суммы оказывается в знаковом разряде. Это вызывает несовпадение знака суммы и знаков слагаемых, что является свидетельством переполнения разрядной сетки.

 

6. Числа А и В отрицательные, а сумма абсолютных величин А и В больше, либо равна 2n–1, где n – количество разрядов формата чисел. В этом случае также знак суммы не совпадает со знаками слагаемых, что будет свидетельствовать о переполнении разрядной сетки.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных