Материал: 370

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

возможных вариантов умножения двоичных чисел в форме с плавающей запятой.

Для запоминания двоичных цифр служит двоичный элемент, имеющий два четко различимых состояния. Этот элемент триггер. Совокупность из n таких двоичных элементов, позволяющая зафиксировать n-разрядное двоичное число, называется регистром (Р). Множимое и множитель хранятся в регистрах.

Умножение осуществляется в 4 этапа:

1)определение знака произведения,

2)определение порядка произведения,

3)перемножение мантисс сомножителей,

4)нормализация результата, если необходимо.

Пример.

Умножить x*y.

x = 0, 10 101·2110

,

y=-0,10

111·2-011.

Умножение

мантисс

ведется

в прямом

коде.

Множимое:

мантисса

[ x] пр = 0, 10 101, его показатель [ x1] обр =0,0 110, множитель:

мантисса

[y]пр = 1,10 111, его показатель [y1]обр =1,1 100.

 

 

 

 

1. Для определения знака

произведения

используется логическая

функция сумма по модулю 2, которая обозначается

О,

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

знак положительного числа, единицей – знак отрицательного числа.

 

 

0 О 0 = 0

0 О 1 = 1

 

 

 

 

 

1 О 0 = 1

1 О 1 = 0

 

 

 

Знак произведения 0 О 1=1, т.е. отрицательный.

 

 

 

2. Порядок произведения определяется

в

 

результате

сложения

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

 

 

 

 

[x1]обр + [y1обр] = 0,0 110 + 1,1100=0,0011.

 

3. Определение

мантиссы

произведения

(табл. 2). Для

записи

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

16

 

 

 

Таблица 2

Определение мантиссы произведения

 

 

 

 

 

x (P1)

y (P2)

→ ∑

Пояснения

неподвижен

→

(сумматор)

 

 

0,10101

0,10111

0,00000 00000

1 такт

 

 

 

+ 0,10101

Анализ R2, если

 

 

0,01011

0,10101 00000

младший разряд 1, то x

 

 

 

заносится в ∑,

 

 

 

0,01010 10000

далее сдвиг y и ∑

 

 

 

 

 

 

0,10101

0,01011

0,01010 10000

2 такт

 

 

+ 0,10101

Анализ R2, если

 

 

0,00101

0,11111 10000

младший разряд 1, то x

 

 

 

заносится в ∑,

 

 

 

0,01111 11000

далее сдвиг y и ∑

 

0,10101

0,00101

0,01111 11000

3 такт

 

 

 

+ 0,10101

Анализ R2, если

 

 

0,00010

1,00100 11000

младший разряд 1, то x

 

 

 

заносится в ∑,

 

 

 

0,10010 01100

далее сдвиг y и ∑

 

0,10101

0,00010

0,10010 01100

4 такт

 

 

 

Анализ R2, если

 

 

 

 

младший разряд 0, то x

 

 

 

 

не заносится в ∑,

 

 

0,00001

0,01001 00110

далее сдвиг y и ∑

 

 

 

 

 

 

 

 

 

 

0,10101

0,00001

0,01001 00110

5такт

 

 

+ 0,10101

Анализ R2, если

 

 

 

0,11110 00110

младший разряд 1, то x

 

 

0,00000

 

заносится в ∑,

 

 

 

0,01111 00011

далее сдвиг y и ∑

 

 

 

 

 

 

Ответ: 0,01111 00011.

В рассмотренном примере реализован метод умножения, начиная с младших разрядов, со сдвигом содержимого множителя и сумматора. Для его реализации требуется 2n-разрядный регистр сумматора, два n- разрядных регистра для размещения множимого и множителя.

4.Нормализуем полученный результат: 0,11110 00110*20010.

2.9.Деление двоичных чисел, представленных в форме

сплавающей запятой, с восстановлением остатка

При реализации операции деления в форме с плавающей запятой необходимо выполнить следующие действия:

17

1)определить знак частного,

2)определить показатель степени частного,

3)найти частное,

4)нормализовать полученный результат.

Для определения знака частного, как и в операции умножения, используется функция сумма по модулю 2. Показатель у частного определяется в соответствии с правилами сложения чисел в форме с фиксированной запятой (см. п. 2.5).

Операция деления, как и в десятичной арифметике, является обратной операции умножения и сводится к последовательности операций сдвига и вычитания. Мантиссы должны быть представлены в дополнительном или обратном коде, и над ними выполняются следующие действия (табл. 3).

 

 

 

 

 

 

Таблица 3

 

 

 

 

 

 

 

 

 

 

Знаки делимого

+

 

 

+

_

_

 

 

А

 

 

 

 

 

 

 

 

 

Знак делителя

+

 

 

_

+

_

 

 

 

В

 

 

 

 

 

 

 

 

 

Что делать

А+

 

 

А+В

А+В

А+

 

 

 

В

В

 

 

 

 

 

 

 

 

 

 

В табл. 3 символ В указывает на изменение знака операнда на противоположный.

Рассмотрим на примере получение мантиссы частного. А = - 0,100111 (мантисса делимого).

В = - 0,110001 Ошибка! Ошибка связи.

Запишем машинные изображения мантисс в обратном модифицированном коде.

А обрмод 11,011000

В мод

11,001110

 

 

мод

00,110001

В

обр

 

 

 

обр

 

При делении мантисс результат будет получен в прямом коде. Найдем мантиссу частного (табл. 4), через Сi обозначим цифру,

которая записывается в частное.

 

 

 

Определение мантиссы частного

 

 

Таблица 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

←∑

 

←Регистр частного

Примечание

11,011 000

 

 

000 000

←Сдвиг

 

10,110 001

 

 

000 00 __

Заносим в ∑

 

 

+ 00,110 001

 

 

000 001

 

 

обрмод

 

 

 

В

11,100 010

 

 

 

C1=1, так как знаки

 

 

 

 

 

 

 

 

 

 

 

 

делимого

 

 

 

 

 

 

и остатка совпадают

 

18

 

 

 

 

 

 

 

 

 

 

 

 

Продолжение табл. 4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

←∑

 

←Регистр частного

Примечание

11,000 101

 

 

 

00001__

←Сдвиг

+00,110 001

 

 

 

000011

Заносим в ∑

 

 

 

 

мод .

В

11,110 110

 

 

 

 

 

 

 

 

 

 

обр

 

 

 

 

С2=1, так как знаки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

делимого

 

 

 

 

 

 

 

 

 

 

 

 

и остатка совпадают.

11,101 101

 

 

 

00011__

← Сдвиг

+

 

 

00,110 001

 

 

 

000110

Заносим в ∑

 

 

мод

В

 

 

 

 

100,011 110

 

 

 

 

 

 

 

 

 

 

обр

 

 

 

 

 

 

С3=0, так как знаки

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

делимого

00,011 111

 

 

 

 

 

 

 

 

и остатка разные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00,011 111

 

 

 

 

Восстановление остатка

+ 11,001 110

 

 

 

00 110__

∑=∑+

 

мод

В

11,101 101

 

 

 

 

 

 

 

 

 

обр

11,011 011

 

 

 

 

← Сдвиг

 

+00,110 001

 

 

 

00110_

Заносим в ∑

 

мод

 

 

 

В

 

 

 

 

 

 

 

 

 

 

100,001 100

 

 

 

 

 

 

 

 

 

 

 

обр

 

 

 

 

 

 

С4=0,так как знаки

 

 

 

 

 

1

 

 

 

 

001100

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

делимого и остатка

 

 

 

 

 

0,001 101

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

не совпадают

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00,001101

 

 

 

 

←

+11,001110

 

 

 

 

001100__

Восстановление остатка

 

 

 

 

 

11,011011

 

 

 

 

 

 

 

 

 

 

 

10,110 111

 

 

 

 

← Сдвиг

 

+00,110 001

 

 

 

01100_

Заносим в ∑

 

мод

 

 

 

В

 

 

 

 

 

 

 

11,101 000

 

 

 

011001

 

 

 

 

 

 

обр

 

 

 

С5=1,так как знаки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

делимого

 

 

 

 

 

 

 

 

 

 

 

 

и остатка совпадают

 

 

 

 

 

11,010 001

 

 

← Сдвиг

 

+00,110 001

 

 

11001_

Заносим в ∑

 

мод

 

 

В

 

 

 

 

 

 

100,000 010

 

 

 

 

 

 

 

 

 

обр

 

 

 

С6=0, так как знаки

+

 

1

 

 

110010

 

 

 

 

 

 

 

 

 

 

 

 

делимого

 

 

 

 

 

0,000 011

 

 

 

 

 

 

 

 

 

 

 

и остатка разные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

00,000011

 

 

 

 

← Сдвиг

 

+11,001110

 

 

 

 

0,110010

Восстановление остатка

 

 

 

 

 

11,010001

 

 

 

 

 

 

 

 

 

 

 

Ответ: 0,110010.

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

19

Контрольные вопросы

1.Напишите изображения чисел А=-0,1001 001, В=0,1010 011 в прямом, обратном, дополнительном кодах.

2.Напишите изображения чисел А=-0,1001 001, В=0,1010011 в модифицированном обратном и дополнительном кодах.

3.Назовите особенности операции сложения в обратном и дополнительном кодах.

4.Назовите признаки переполнения разрядной сетки при выполнении операции сложения (вычитания).

5.Сформулируйте алгоритм выполнения операции сложения в цифровых вычислительных машинах с плавающей запятой.

6.Как определяется знак произведения в цифровых вычислительных машинах с плавающей запятой?

7.Как определяется порядок в цифровых вычислительных машинах с плавающей запятой?

8.В каком коде получается результат при выполнении операции деления?

3.ДВОИЧНОЕ КОДИРОВАНИЕ ТЕКСТОВОЙ ИНФОРМАЦИИ

Начиная с конца 60-х годов, компьютеры стали использоваться не только для выполнения сложных математических расчетов, но и для обработки текстовой информации. В настоящее время большая часть персональных компьютеров в мире (и наибольшее время) занята обработкой именно текстовой информации.

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

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

Традиционно, для того чтобы закодировать один символ, используется количество информации, равное 1 байту, т. е. I = 1 байту = 8 битам. При помощи формулы, которая связывает между собой количество возможных событий К и количество информации I, можно вычислить, сколько

20

Источник: https://studfile.net/preview/16406427/