Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы1.doc
Скачиваний:
61
Добавлен:
15.06.2014
Размер:
2.65 Mб
Скачать

4. Форматы данных, прямой, обратный, дополнительный код.

В ЭВМ операция сложения реализуется проще, чем операция вычитания. Поэтому операцию вычитание заменяют операцией

сложения специально подобранный кодов, которыми изображаются двоичные числа, являющиеся правильными дробями.

Прямой код: Пусть Х –правильная двоичная дробь (положительная или отрицательная). В частном случае Х равно нулю.

Прямым кодом числа Х называется число, обозначаемое символом [Х]пр, получаемое по следующей формуле:

[Х]пр=(Х, если Х ≥ 0, 1-Х, если Х ≤ 0. Следовательно, прямой код двоичного числа совпадает по изображению с записью самого числа,

при этом в знаковом разряде для положительных чисел записывается 0, а для отрицательных 1. Пример: Х=-0,1101, [Х]пр=[-0,1101]=1-(-0,1101)=1,1101

Обратный код: Пусть Х – правильная двоичная дробь, в частности Х=0. Обратным кодом числа Х называтеся число [Х]об=(Х, если Х≥0, 10-10п + Х, если Х≤0) где п - количество цифр дробной части числа Х, 10 – означает два. Обратный код отрицательного двоичного числа получается следующим образом: в знаковый разряд записывается 1, а значения всех двоичных цифр дробной части инвертируются, т.е. заменяются на противоположные.

Пример: Х=-0,1101, [Х]об=1,0010. Для перевода обратного кода отрицательного числа в прямой код необходимо значение всех цифровых разрядов инвертировать, оставив знаковый разряд без изменения. Модифицированный обратный код правильной дроби определяется по той же формуле,

что и обратный код, только на изображение знака числа, включая положительный и отрицательный нуль, отводятся два разряда.

Дополнительный код: [Х]доп=(Х, если Х≥0, 10 + Х, если Х<0), где 10 – означает два. Дополнительный код отрицательного двоичного числа получается следующим образом: в знаковый разряд записывается 1, значения всех двоичных разрядов дробной части инвертируются, а к младшему разряду полученного при этом числа прибавляется единица по правилам двоичной арифметики. Пример: Х=-0,1101, [Х]доп=[-0,1101]=10+(-0,1101)=1,0011. Для перевода из дополнительного кода отрицательного числа в прямой код необходимо из младшего разряда вычесть единицу, а затем все цифровые разряды инвертировать, оставив знаковый разряд без изменения. Модифицированный дополнительный код так же отличается от просто дополнительного двумя знаковыми разрядами.

5. Сложение (вычитание) двоичных чисел с фиксированной запятой.

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

если каждое из слагаемых по модулю меньше 1: |x|<1, |y|<1 и модуль их суммы также меньше единицы: |x+y|<1.

Если же при сложении правильных дробей с одинаковыми знаками окажется, что модуль их суммы равен или больше единицы |x+y|>=1,

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

Алгебраическое сложение чисел в дополнительном коде

Дополнительные коды чисел суммируются поразрядно по правилам двоичной арифметики, при этом знаковые разряды складываются по тем же правилам,

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

Данное правило относится и к модифицированному дополнительному коду.

При условии, что слагаемые по модулю меньше единицы: |x+y|<1, сложение чисел в дополнительном (модифицированном дополнительном) коде дает сумму в дополнительном (модифицированном дополнительном) коде.

Алгебраическое сложение чисел в обратном коде

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

При выполнении условия, что слагаемые |x|<1; |y|<1 и их сумма |x+y|<1 – сложение чисел в обратном (модифицированном обратном)

коде дает сумму в обратном (модифицированном обратном) коде.

Пример: пусть требуется найти сумму двух чисел x и y в обратном коде, при оговоренных выше условиях и при этом x<0; y<0; (x+y)<0.

Соседние файлы в предмете Дискретная математика