Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_итог7.doc
Скачиваний:
21
Добавлен:
17.11.2019
Размер:
16.96 Mб
Скачать

2.7 Методы, использующие промежуточные системы систем счисления

Преобразования через “промежуточную систему” основываются на рассмотренных ранее методах 1–5. Такая процедура преобразования может быть эффективна в нескольких случаях, например:

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

  2. если соотношения оснований исходной и требуемой системы счисления – “неудобны” для непосредственных преобразований.

Например, если требуется преобразовать шестнадцатеричное число в восьмеричную систему счисления. Конвертирование может быть выполнено “прямо”, методом “цифра за цифрой”. Ранее показано, что метод требует использовать операцию деления по модулю 16, если число целое, умножения по модулю 16, если число дробное, либо той и другой операции, если число – смешанное. Умножение по модулю выполнимо, однако, требует навыков при ручных вычислениях. Непроизводительно при машинной реализации.

В этих условиях, более эффективна следующая последовательность конверсий:

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

  2. преобразование двоичного числа в восьмеричную систему.

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

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

  1. Савельев А.Я. Арифметические и логические основы цифровых автоматов: Учебник. - М.: «ВШ», 1980. – 255 с.

  2. Карцев М.А. Арифметика цифровых машин. - М.: «Наука», 1969. - 575 с.

  3. Каган Б.М. Электронные вычислительные машины и системы. - М.: «Энергия», 1975. – 528 с.

  4. Каган Б.М. Электронные вычислительные машины и системы. 2-е изд. - М.: «Энергоатомиздат», 1985 – 542 с.

  5. Поспелов Д.А. Арифметические основы вычислительных машин дискретного действия. М., «Высшая школа», 1970. – 308с.

  6. Дискретная математика: Учеб. Для студентов втузов / В.А. Горбатов, А.В. Горбатов, М.В. Горбатов — М.: « «Издательство АСТ»: ООО «Издательство Астрель», 2003. – 447с.

Часть 2. Кодирование данных в микропроцессорной технике

Цель работы. Изучить способы кодирования данных, используемые в микропроцессорной технике.

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

Знать особенности и области их преимущественного использования.

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

Порядок выполнения.

  1. Изучить теоретические основы кодирования данных (Приложение. Теоретические основы кодирования)

  2. Заполнить таблицу, представив заданные числа (заполненные клетки в строках таблицы (выделено) ) в других кодах (свободные клетки строки таблицы).

Десятичное число

Двоичные коды чисел

ПРЯМОЙ МОДИФИЦ.

ОБРАТНЫЙ

ПРОСТОЙ

ДОПОЛНИТ.

ПРОСТОЙ

1.0101111

0.1011001

11.001010

-0.457125

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

Необходимо преобразовать его в простой обратный, модифицированный прямой и в естественное десятичное число. Порядок преобразования – выбирается.

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

ДЕСЯТИЧНОЕ

ЧИСЛО

ДВОИЧНЫЕ КОДЫ ЧИСЕЛ

ПРЯМОЙ

МОДИФИЦ.

ОБРАТНЫЙ

ПРОСТОЙ

ДОПОЛНИТ.

ПРОСТОЙ

0,6328125

11.1010001

1.0101110

1.0101111

Аналогичным образом должны быть заполнены все строки таблицы.

Содержание отчета.

  1. Полностью заполненная таблица-задание.

  2. Примеры преобразований

Приложение. Теоретический материал к ЛР1 “Основы машинной арифметики”. Часть 2

Кодирование числовых данных

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

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

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

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

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

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

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

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

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

В таблице приведены коды знаков для простого и модифицированного двоичного кода.

Знак числа

Код знака

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

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

+

0

00

1

11

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

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

1. Прямой код

Прямой простой код для дробного и целого форматов числа записывается по-разному.

Для дробного числа в полиномиальной форме:

Д ля целого числа в полиномиальной форме

В этих выражениях S – код знака (signum) числа, принимающий значение 0 для положительно числа, и значение 1– для отрицательного.

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

В аналитической интерпретации, прямой простой код отрицательного числа представляется в виде суммы

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

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

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

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

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

Решение: [A]пр = 01011100; [B]пр = 1.1011010.

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

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

Решение.[A]пр = 10000000000011100; [B]пр = 1.101000000000000.