Добавил:
Студент, если у тебя есть завалявшиеся работы, то не стесняйся, загрузи их на СтудентФайлс! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МИУС .docx
Скачиваний:
5
Добавлен:
16.07.2022
Размер:
756.18 Кб
Скачать

1.5. Кодирование чисел в машине

Задача кодирования возникает при переходе от естественной формы представления числа к машинной форме представления.

Естественная форма предполагает:

- задание знака чисел (положительное, отрицательное) с помощью символов “+”,”–” ;

- указание на место положение запятой с помощью специального символа – разделителя “,” (запятая);

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

Поэтому, при кодировании решаются две задачи, во- первых, кодируется знак числа, во вторых, выполняется соответствующее представление мантиссы числа.

Д иаграмма поясняет классификацию преобразований выполняемых при переходе к машинной форме представления чисел.

Рис.3. Классификация машинных кодов чисел

Кодирование знаков.

В таблице 7 приведены коды знаков для простого и модифицированного двоичного кода. В машинных представлениях чисел символы “+”,”–” заменяются их кодами в виде одной или двух цифр используемой системы счисления.

Таблица 7. Кодирование знаков чисел

Знак числа

Код знака

для простого кода

для модифицированного кода

+

0

00

1

11

В простых кодах знак кодируется одной цифрой, в модифицированных - двумя. Коды знаков занимают старшую (левую) позицию в разрядной сетке, используемую для представления числа. Старший знаковый разряд модифицированного кода либо “вписывается” в заданную разрядную сетку , либо помешается в дополнительном разряде. При использовании n-разрядной сетки в два раза уменьшает диапазон представляемых чисел, однако, в силу простоты, именно этот способ в МПТ применяется чаще.

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

Для получения прямого кода числа, заданного в символической форме, необходимо

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

2. в значащих разрядах кода записать без изменений модуль числа.

Пример. Записать двоичные целые и дробные числа A= +1011100 и B= – 0.101101 в прямых кодах.

Решение: Aпр = 0.1011100; Bпр = 1.1011010.

Так как прямой код – машинное представление числа, то необходима привязка к заданному машинному формату (байт, слово и т.п.). В примере 1 выполнена привязка к формату байт.

Пример. Записать двоичные целое и дробное числа A= –111002 и B= 0. 1012 в прямых кодах. Выполнить привязку к формату целого и дробного слова (16 разрядов или два байта).

Решение: Aпр = 1.0000000000011100; Bпр = 1.101000000000000.

Обратные и дополнительные коды предполагают изменение значащей части отрицательного числа. Такое изменение выполняется с целью замены операции вычитания чисел операцией сложения, поскольку арифметико-логические устройства (АЛУ) любой ЭВМ, в том числе и микропроцессоров, содержат только сумматоры и регистры сдвигов.

Операция вычитания заменяется операцией сложения с отрицательным числом:

А - В = А + (-В)

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

  1. сохранить значение знакового разряда прямого кода;

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

Пример.

- 17D = 1.10001B = 1.10001B – прямой код

1.01110B – обратный код

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

Обратными преобразованиями называются преобразования, обеспечивающие получение из обратного кода прямого.

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

1. сохранить знак обратного кода;

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

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

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

Решение. Исходные данные и результаты преобразований представлены в таблице.

Обратные коды чисел

Прямые коды, полученные после преобразования

1.0011110B

1.1100001B

01101001B

0.1101001B

1.0011001B

1.1100110B

0.1111001B

0.1111001B

Дополнительные коды числовых данных

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

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

  1. получить обратный код числа;

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

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

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

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

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

Для получения прямого кода из дополнительного возможны два варианта:

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

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

Для положительных целых чисел прямой, обратный и дополнительный коды совпадают.

Соседние файлы в предмете Основы микропроцессорной техники