Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОДЕРЖАНИЕ 3 (2).doc
Скачиваний:
46
Добавлен:
31.08.2019
Размер:
6 Мб
Скачать
☆
        1. Умножение множимого в традиционной двоичной системе на множитель, представленный в двоичной системе счисления с алфавитом

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

Рассмотрим свойства системы с симметричным алфавитом.

Представление чисел в двоичной системе с алфавитом неоднозначно и не требует знакового разряда. Знак количественного эквивалента однозначно определяет знак первой единицы слева в коде числа. Например, количественный эквивалент кодов и равен (+1), а кодов и равен (–1).

Двоичный код положительного числа в системе с алфавитом можно рассматривать как код того же числа в системе с алфавитом . Например, коды 0|0101 в традиционной двоичной системе счисления и 00101 в симметричной двоичной системе имеют количественный эквивалент (+5).

Для изменения знака числа в системе достаточно изменить знак всех единиц в коде числа или их интерпретацию (подразумевать, что цифра кодирует количество (+1), а цифра 1 кодирует количество (–1)). Например, если , то .

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

При одинаковом положении запятой и диапазоне представляемых чисел количество разрядов в прямом коде двоичного числа на 1 больше чем в двоичной системе с алфавитом . Например, в прямом коде целые в диапазоне [1|1111; 0|1111] (±15) имеют 5 разрядов, а в системе с алфавитом – 4 разряда [ ; 1111 ].

В дополнительном коде диапазон представляемых чисел шире на одно число, чем в прямом коде. Поэтому, если код 1|00…0д применяется для кодирования числа , то для представления в системе с алфавитом всех k разрядных, включая разряд знака, двоичных чисел потребуется k разрядов. Диапазон k разрядных чисел в системе с алфавитом много шире диапазона k разрядных чисел в дополнительном двоичном коде. Поэтому в системе с алфавитом множество кодов не будут использоваться для представления k разрядных чисел дополнительного кода.

Например, при дополнительный двоичный код принадлежит диапазону [1|0000д; 0|1111д] (-16; +15). Код 1|0000д нельзя представить 4 разрядным числом в системе с алфавитом . При 5 разрядах его значение будет . Диапазон 5 разрядных чисел в симметричной системе [ ; 11111] (-31; +31) много шире диапазона 5 разрядных чисел в дополнительном коде. Поэтому числа принадлежащие интервалам [ ; ] и [10000; 11111] при преобразовании из дополнительного кода в симметричную систему применяться не будут (они лишние).

Если код 1|00…0д не применяется для кодирования числа , то диапазон представляемых чисел симметричен и им в системе с алфавитом соответствуют разрядные числа.

В дальнейшем будем обозначать множимое и множитель, представленные в традиционной системе счисления в дополнительном коде, X и Y соответственно, а множитель в системе счисления буквой Z. Причем .

Умножение дополнительного кода X на Z можно выполнять сложением частных произведений множимого на цифры множителя. Произведение . Для его вычисления необходимо изменить знак X. Изменение знака X и сложение частных произведений следует выполнять по правилам справедливым при представлении чисел в дополнительном коде.

Вычисление (–X) можно совместить со сложением частных произведений. Можно заменить вычисление (–X) вычитанием частного произведения . Частное произведение можно прибавлять или вычитать (раздел 4.4.2.11).

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

Формат произведения зависит от применения кода 1|00…0д для представления числа (см. начало раздела 4.4.2).

Пример 4-38. Во всех вариантах примера множимое в дополнительном двоичном коде и допускается применение кода 1|00…0доп для представления числа . Так как в X и Z количество разрядов равно 5,7 то разрядность произведения, включая разряд знака, выбрана 5+5=10. Поэтому формат частных произведений расширен до 10 разрядов копированием знаковых разрядов.

Частные произведения вычислены в двоичном дополнительном коде: , , и их крайний левый разряд является знаковым. В примерах знаковые разряды и их копии выделены жирным шрифтом. Код знака произведения показан жирным шрифтом.

В варианте A значение Z не содержит и его код в обеих системах счисления одинаков. Знаки не равных нулю частных произведений 1, так как .

Варианты A и B отличаются способом записи множителя, но это не влияет, и не может влиять на результат вычислений.

В варианте B первое и последнее частное произведение , так как . Третье и четвертое частные произведения положительные, так как . Это потребовало вычисление значения (–X) по правилу изменения знака в дополнительном коде, хотя можно было вместо изменения знака X выполнить вычитание частных произведений (+4X) и (+8X) по правилу вычитания дополнительных кодов.

A B C

X: 11010д (-6) 11 0 10д (-6) 001 1 0д (+6)

Z: (+5) (+5) (+5)

1111111010 X 1111111010 X 1111111010 -X

000000000 000000000 111111010 -2X

11111010 4X 00000110 -4X 00000000

0000000 0000110 -8X 1111010 -8X

000000 111010 16X 000110 16X

1111100010д (-30) 1111100010д (-30) 0000011110д (+30)

D E

1000 0д (-16) 10000д (-16)

(+7) (-16)

0000010000 -X 0000000000

000000000 000000000

00000000 00000000

1110000 X 00000000

0000000 010000 -X

1110010000д (-112) 0100000000д (+256)

Варианты D и E иллюстрируют особые случаи, когда отрицательное множимое принимает минимальное значение. Кроме того, в варианте E множитель Z имеет аналогичный количественный эквивалент, и его дополнительный код в традиционной двоичной системе 1|0000д (-16).

Если код 1|00..0д для кодирования числа не используется, то разрядность Z и произведения уменьшатся на 1 разряд слева. Это приводит к сокращению в матрице левого столбца и нижней строки.

П

X: 11010д (-6)

Z: (+5)

+1111111010 X

000000000

–11111010 4X

–1111010 8X

+111010 16X

1111100010д (-30)

ример 4-39
. Здесь умножение X на реализуется вычитанием строки частного произведения X на 1 в процессе вычисления произведения. Кроме того показана возможность выполнять операцию сложения или вычитания частного произведения равного +0.

Сравните полученный результат умножения с результатом, вычисленным в примере 4-38 вариант B.