Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
действия с кодами двоич чисел.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
77.44 Кб
Скачать

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

При сложении чисел, представленных в нормальной форме, необходимо учитывать:

  1. Числа в нормальной форме хранятся в памяти в прямом коде с нормализованными мантиссами.

  2. Сложение кодов чисел производится путем сложения мантисс только при одинаковых порядках (характеристиках) слагаемых. За общий выбирается наибольший порядок. Выравнивание порядков слагаемых осуществляется изменением мантиссы меньшего числа.

  3. Результаты в прямом коде нормализуются.

Пример. Дано А = 15 7/8 ; B = 5/16. Найти сумму чисел при разных знаках слагаемых.

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

A = F,E16; B = 0,516

1. Нормализация мантисс и определение характеристик:

mA = 0,FE PxA = 40 + 1 = 41

mB = 0,5 PxB = 40 + 0 = 40

2. Выравнивание характеристик:

PxB = 41 => mB = 0,05

3. Дополнительные коды мантисс отрицательных чисел.

-mA = 1.00 - 0,FE = 0,02

-mB = 1.00 - 0,05 = 0,FB

4. Коды чисел:

а) в шестнадцатеричном представлении

A = 41FE0000

B = 41050000

-A = C1020000

-B = C1FB0000

б) в двоичном представлении

A = 0 1000001 1111 1110 0000 0000 0000 0000

B = 0 1000001 0000 0101 0000 0000 0000 0000

-A = 1 1000001 1111 1110 0000 0000 0000 0000

-B = 1 1000001 0000 0101 0000 0000 0000 0000

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

Важно: помните, что числа в нормальной форме представления хранятся в прямом коде!

4. Выполнение действий.

C1 = A + B

mA

F

E

0

0

0

0

mB

0

5

0

0

0

0

mC1

1

0

3

0

0

0

0

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

Нормализация мантиссы: mC1 = 0,103 PC1 = 41 + 1 = 42

Код числа C1 = 42103000 или 0 1000010 0001 0000 0011 0000 0000 0000

Проверка: С1 = 10,316 = 16 3/16 10

C2 = -B = - (A + B)

Так как числа хранятся в прямом коде, нет необходимости выполнять двойные преобразования, можно взять C2 = -C1.

Код числа С2 = 1 1000010 0001 0000 0011 0000 0000 0000 или C2103000

С2 = -10,316 = -16 3/16 10

C3 = A - B

mA

F

E

0

0

0

0

-mB

F

B

0

0

0

0

mC3

1

F

9

0

0

0

0

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

Код числа С3 = 41F90000 или 0 1000001 1111 1001 0000 0000 0000 0000

С2 = F,916 = 15 9/19 10

C4 = B - A

-mA

0

2

0

0

0

0

0

mB

0

5

0

0

0

0

0

-mC4

0

7

0

0

0

0

0

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

mC4 = 1,00 - 0,07 = 0,F9 PmC4 = 41

Код числа С4 = C1F90000 или 1 1000001 1111 1001 0000 0000 0000 0000

C4 = -F,916 = -15 9/19 10