Критерии выбора системы счисления в ЭВМ. Кодирование чисел для выполнения арифметических операций в ЭВМ. Машинные алгоритмы умножения чисел в ЭВМ. Двоично-десятичные коды, страница 3

Обратный код положительного числа совпадает с его прямым кодом. Аналитически обратный код определяется так:

Число A – дробное

0.|A|     при A>=0

[A]обр =       -n

r-|A|-r     при A<0

Число A – целое

0.|A|    при A>=0

[A]обр=     n+1

r-|A|-1     при A<0

где r - система счисления, n - разряд числа. Аппаратно перевод числа в обратный код осуществляется гораздо проще чем в дополнительный. Для перевода отрицательного числа в обратный код необходимы только инверторы.

Число A      = 11000

[A]обр  = 00111

ПРИМЕР 5: Представить в обратном коде дробные двоичные числа A1=0.110011 и A2=-0.110011

Ответ: [A1]обр=0.110011  [A2]обр=1.001100

ПРИМЕР 6: Представить в обратном коде двоичные целые числа A1=110011 и A2=-110011, используя 8-разрядную сетку.

Ответ: [A1]=00110011  [A2]=11001100

Покажем как с помощью обратного кода происходит вычитание чисел:

A = 1011            Aобр = 0.1011

B =-1001            Bобр = 1.0110

10.0001

A+B = 0.0010

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

Схема сложения/вычитания чисел в обратных кодах (числа A и B из предыдущего примера хранятся в регистрах в обратных кодах):

Основное достоинство обратного кода по сравнению с дополнительным состоит в простоте его формирования.

Модифицированные коды

Для обнаружения переполнения разрядной сетки.

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

[А]пр = f(А)А>0 = 00,A

[А]пр = f(А)А<0  = 11,A


3.Машинные алгоритмы умножения чисел в ЭВМ.

Мн – множимое

Мт – множитель

Различают четыре основных алгоритма умножения.

Алгоритм умножения А. Операция умножения по этому алгоритму начинается с младших разрядов множителя. Частичные суммы сдвигаются вправо на один разряд (сумма=сумма*2-1).

┌───────┐

7           ────>                 0 │       │

┌────────────────────────────────┐ │     ┌─┴───┐7(ст.)

│  Рег. Суммы                    ├─┘     │Рег. │

└────┬────┬───────────────┬───┬──┘       │     │

│    │               │   │          │     │

┌──┬─┴─┬──┴─┬───────────┬─┴─┬─┴──┐       │     │ │

│  │ & │ &  │           │ & │ &  │       │     │ │

└──┴─┬┬┴─┬─┬┴───────────┴─┬┬┴─┬┬─┘       │     │

│┴──┼─┴───  . . .   ─┼┴──┼┴──────┐  │     │

┌────┴───┴────────────────┴───┴──┐    │  │     │

│  Рег. Множимого                │    │  │     │

└────────────────────────────────┘    │  └──┬──┘ 0(мл.)

7(ст.)                            0(мл.)│     │

└─────┘

Алгоритм умножения Б. Операция умножения по этому алгоритму начинается с младших разрядов множителя. Частичные произведения сдвигаются влево на  k разрядов (ч.произв.=произв*2k).Где k соответствующее частичное произведение.

Алгоритм умножения В. Операция умножения по этому алгоритму начинается со старших разрядов множителя. Частичные суммы сдвигаются влево на один разряд (сумма=сумма*21).

Алгоритм умножения Г. Операция умножения по этому алгоритму начинается со старших разрядов множителя. Частичные произведения сдвигаются вправо на  k разряд (ч.произв.=ч.произв.*2k).Где k соответствующее частичное произведение.


4.Машинные алгоритмы деления чисел в ЭВМ.

Деление - это простое многократное вычитание. Вначале из делимого, а затем из остатка.

Введем следующие обозначения:

Дм   - делимое

Дт   - делитель

Чт   - частное

Ai    - остаток

Рассмотpим два основных метода деления:

1)  с восстановлением остатка

2)  без восстановления остатка

В каждом методе можно сдвигать либо остатки влево, либо делитель вправо, но первый вариант наиболее приемлем.

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