Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_итог7.doc
Скачиваний:
19
Добавлен:
17.11.2019
Размер:
16.96 Mб
Скачать
  1. Дополнительные коды числовых данных

4.1 Прямые преобразования

Для двоичной арифметики дополнительные коды аналитически определяются двумя соотношениями.

Для положительных операндов:

Д ля отрицательных операндов:

Выражение (5а) получается, если принять Q=0, выполняя тем самым требование 1.

Упуская некоторые аналитические детали, можно утверждать, что

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

Процедура 4. Для получения дополнительного кода отрицательного числа, представленного в прямом коде необходимо

  1. получить обратный код числа, руководствуясь Процедурой 2;

  2. прибавить единицу к самому младшему разряду полученного обратного кода (+1LSB);

  3. знак числа в обратном коде – сохранить.

Процедура 4 инвариантна к разрядности и формату преобразуемого числа.

Пример 7. Получить дополнительный код двоичного числа [x]пр=1.11101010000B.

Решение. [x]доп=1.00010110000B.

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

Процедура 5. Для получения дополнительного кода отрицательного о числа необходимо

  1. просматривать значащую часть числа справа налево, сохраняя все младшие нули и первую значащую единицу;

  2. остальную значащую часть числа проинвертировать;

  3. знак числа – сохранить.

В необходимых случаях можно использовать ещё одну Процедуру.

Процедура 6. Для получения дополнительного кода отрицательного числа необходимо

  1. вычесть единицу из младшего разряда преобразуемого числа;

  2. проинвертировать все значащие цифры полученного числа;

  3. знак числа – сохранить.

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

4.2 Обратные преобразования

Как и при использовании обратных кодов необходимо осуществлять преобразование из дополнительного кода отрицательного числа в прямой код. Такой переход выполняется по следующей процедуре.

Процедура 7. Для преобразования дополнительного кода отрицательного числа в прямой код необходимо

  1. выполнить поразрядную инверсию значащей части дополнительного кода;

  2. прибавить в младший разряд полученного кода единицу (+1LSB);

  3. сохранить знак.

Процедура справедлива для формата целых и дробных чисел.

Иногда более эффективна следующая процедура преобразования.

Процедура 8. Для преобразования дополнительного кода отрицательного числа в прямой код необходимо

  1. вычесть из младшего разряда дополнительного кода единицу

  2. выполнить поразрядную инверсию значащей части полученной разности;

  3. сохранить знак.

Пример 8. Преобразовать, используя Процедуру 8 в дополнительный код отрицательное число [X ]доп = = 1.0100000B.

Решение.

Дополнительный код X. Разность равна 1.0100000 – 1 =1.0011111; Поразрядная инверсия равна 1.1100000.

т.е. [ X] пр =1.1100000B.

Пример 8 подтверждает ещё одну процедуру, справедливую для дополнительных кодов.

Процедура 9. Для получения прямого кода отрицательного двоичного числа необходимо

  1. просматривать значащую часть числа справа налево, сохраняя все младшие нули и первую значащую единицу;

  2. остальную значащую часть числа проинвертировать;

  3. знак числа – сохранить.

Рекомендуемая литература

1. Савельев А.Я. Арифметические и логические основы цифровых автоматов: Учебник. - М.: «ВШ», 1980. – 255 с.

2. Карцев М.А. Арифметика цифровых машин. - М.: «Наука», 1969. - 575 с.

3. Каган Б.М. Электронные вычислительные машины и системы. - М.:«Энергия», 1975. – 528 с.

4. Каган Б.М. Электронные вычислительные машины и системы. 2-е изд. - М.: «Энергоатомиздат», 1985 – 542 с.

5. Поспелов Д.А. Арифметические основы вычислительных машин дискретного действия. М., «Высшая школа», 1970. – 308с.