- •Часть 1. Исследование систем счисления и методов конвертирования
- •Часть 2. Кодирование данных в микропроцессорной технике
- •Часть 3. Арифметические операции при обработке данных
- •Лабораторная работа №1. Основы машинной арифметики.
- •Часть 1. Исследование систем счисления и методов конвертирования
- •Содержание отчета
- •1. Введение в системы счисления
- •1.1 Общие положения. Классификация систем счисления
- •1.2 Позиционные системы счисления. Полиномиальное представление чисел
- •1.3 Системы счисления, применяемые в микропроцессорной
- •1.4 Некоторые свойства позиционных однородных систем с естественным множеством цифр
- •2. Преобразование чисел из одной системы счисления в другую
- •2.1 Методы конвертирования
- •2.2 Метод подбора
- •2.3 Метод замещения полиномиальных элементов (поэлементное замещение)
- •2.4 Метод, основанный на “схеме Горнера”
- •2.5 Метод “цифра за цифрой”
- •2.5.1 Конверсия целого числа методом “цифра за цифрой”
- •2.5.2 Конверсия дробного числа методом “цифра за цифрой”
- •2.6 Методы, учитывающие специфические соотношения оснований систем счисления
- •2.6.1 Двоично-шестнадцатеричные и шестнадцатерично-двоичные преобразования
- •2.6.2 Двоично-восьмеричные и восьмерично-двоичные преобразования
- •2.7 Методы, использующие промежуточные системы систем счисления
- •Часть 2. Кодирование данных в микропроцессорной технике
- •2. Теоретические основы кодирования чисел
- •3. Обратные коды двоичных чисел.
- •Дополнительные коды числовых данных
- •Часть 3. Арифметические операции при обработке данных
- •1. Предварительные замечания
- •3.1.1. Сложение дробных и целых положительных чисел без переполнения. (Случай 1)
- •3.1.2. Сложение дробных и целых положительных чисел с переполнением (Случай 2)
- •3.1.3. Сложение дробных и целых отрицательных чисел без переполнения (Случай 3)
- •3.1.4. Сложение дробных и целых отрицательных чисел с переполнением (Случай 4)
- •3.1.5. Сложение отрицательных чисел с “особым случаем переполнения”(Случай 5)
- •3.6.Сложение чисел разных знаков
- •3.1.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6, 9)
- •3.1.6.3. Модуль положительного операнда меньше модуля отрицательного (Случаи 7,8).
- •3.1.7 Обнаружение переполнения разрядной сетки в пдк
- •3.2.1. Сложение в обратных кодах дробных и целых отрицательных чисел без переполнения (Случай 3ок)
- •3.1.4. Сложение в обратных кодах дробных и целых отрицательных чисел с переполнением (Случай 4ок)
- •3.1.5. Сложение в обратных кодах отрицательных чисел с “особым случаем переполнением ” при сложении в дополнительных кодах (Случай 5)
- •3.1.6.Сложение в обратных кодах чисел разных знаков
- •3.1.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6, 9)
- •3.4 Обнаружение переполнения разрядной сетки в пок
- •4. Cложение чисел в модифицированных дополнительных кодах (мдк)
- •4.2.1. Сложение дробных и целых положительных чисел без переполнения. (Случай 1)
- •3.2.2. Сложение дробных и целых положительных чисел с переполнением (Случай 2)
- •3.2.3. Сложение дробных и целых отрицательных чисел без переполнения (Случай 3)
- •3.2.4. Сложение дробных и целых отрицательных чисел с переполнением (Случай 4)
- •3.2.5. Сложение целых отрицательных чисел с “особым случаем переполнения”(Случай 5)
- •3.2.6.Сложение чисел разного знака в модифицированных дополнительных кодах
- •3.2.6.1. Модуль положительного операнда больше модуля отрицательного. (Случаи 6,9)
- •3.2.6.3. Модуль положительного операнда меньше модуля отрицательного (Случаи 7,8).
- •4. Обнаружение переполнения разрядной сетки в модифицированных дополнительных кодах
1.3 Системы счисления, применяемые в микропроцессорной
технике
В практике находят широкое применение следующие системы счисления.
Десятичная. Привычная система с основанием в которой используется десять цифр . В этой системе могут представляться исходные данные, решаются контрольные примеры и выводятся на различные носители и средства визуального отображения результаты, полученные при вычислении.
Двоичная. Основание двоичной системы . Используется только две цифры . Такая система естественно описывает состояния дискретных элементов (ключевых схем), являющихся базой микропрцессорной схемотехники. На этой системе основываются аналитические бинарные модели дискретных устройств.
В двоичной системе счисления целой и дробной частям смешанного число соответствуют следующие полиномиальные представления.
Например, целой части двоичного числа соответствует двоичный полином вида
Дробная часть этого числа запишется в виде
Очевидно, что для получения двоичного полинома при представлении весовых коэффициентов и цифр должны использоваться правила двоичной системы счисления. Более того, все операции в полиноме (умножение, возведение в степень, сложение) должны выполняться по правилам двоичной арифметики.
В этом случае имеет место полиномиальное представление двоичного числа в виде двоичного полинома.
Система не лишена недостатков: для представления целых чисел в системе с основанием 2 необходимо больше разрядов, чем, в других систем с непосредственным представлением чисел (см. Рис.1).
Шестнадцатеричная. Система с основанием , в которой используется шестнадцать цифр . Цифрами, превышающими по значению 9, служат прописные буквы латинского алфавита. В этой системе счисления полиномиальное представление смешанного числа, например, имеет следующий вид.
Целая часть этого числа представляется как
Дробная часть
Ш естнадцатеричная система в силу компактности записи числа обеспечивает компактный вывод данных и результатов на средства визуального отображения – электролюминисцентные и жидкокристаллические индикаторы, в поля ввода–вывода экранных форм и т.п. Это преимущество шестнадцатеричных систем счисления очевидно из Рис.1, на котором приведены символические экраны для вывода десятичного числа в виде шестнадцатеричного числа и в виде двоичного .
Восьмеричная СС. Это система с основанием , в которой используется восемь цифр {0,1,2,…,7}.
В восьмеричной системе счисления смешанное число, например выражается в следующем виде.
Целая часть числа представляется как полином вида
Дробная часть имеет вид
Обобщая вышесказанное, необходимо сделать следующие выводы.
Для получения –ичного полинома –ичного числа необходимо все элементы полинома представлять в –ичной системе счисления.
Более того, все операции в полиноме (умножение, возведение в степень сложение) должны выполняться по правилам –ичной арифметики.
Обращает на себя внимание, что кодовые записи оснований во всех системах счисления выглядят одинаково –10. Однако, это разные по количественному эквиваленту числа, а именно .
Двоично-десятичная система счисления (BCD (Binary Coded Decimal)). Относится к двоично–кодируемым позиционным системам.
Основанием системы является десятичное число 10, а для кодирования десятичных цифр используется десять двоичных четырехразрядных комбинаций (тетрад). Каждая комбинация однозначно соответствует десятичной цифре в десятичном числе.
Известно, что число двоичных четырехразрядных комбинаций превышает число цифр десятичной системы счисления – 10 .
Вследствие этого возникает дополнительная проблема выбора оптимального соответствия между десятичными цифрами и двоичными тетрадами (кодирование).
Актуальность решения задачи выбора кода усугубляются тем, что каждый тип отображения цифра → тетрада порождает код с уникальными свойствами.
Число различных вариантов кодирования определяется как число размещений с перестановками из шестнадцати элементов (число возможных тетрад - ) на десяти местах (число десятичных цифр - ). Оно может быт подсчитано как
Подсчёты показывают, что число кодов около 6 млн.(!). Пригодность и эффективность конкретного кода для машинных расчётов – различна.
Поэтому при выборе кода желательно, чтобы были учтены некоторые ограничения и требования.
Известны пять основных требований (критериев), которые сформулированы Рутисхаузером.
Единственность. Необходимо однозначное соответствие цифр и тетрад. Если это требование не выполнено, то невозможно кодирование и декодирование чисел.
Упорядоченность. Большим десятичным цифрам должны соответствовать большие (по количественному эквиваленту) тетрады. Выполнение этого требования необходимо при сравнении кодированных чисел.
Четность. Четным десятичным цифрам должны соответствовать четные тетрады (тетрады, у которых в крайнем правой разряде стоит нуль), а нечетным цифрам — нечетные тетрады.
Дополнительность. Если цифры десятичной системы таковы, что сумма их равна девяти, то им должны сопоставляться тетрады, которые взаимно инвертированы, т. е. получаются друг из друга заменой единиц на нули, а нулей на единицы. Выполнение этого требования необходимо для того, чтобы ввести в двоично-десятичной системе дополнительный или обратный код.
Весомозначность. Должны существовать четыре веса таких, что если десятичной цифре сопоставлена тетрада ( ), то имеет место равенство
.
К весомозначности приводит, например, следующий способ кодирования: каждая десятичная цифра кодируется ее записью в двоичной системе с использованием полинома вида (1.1) .
В этом случае цифра 5 будет закодирована тетрадой 0101, цифра 6 –тетрадой 0110 и т.д. Такой способ кодирования называется кодом прямого замещения с весами (8, 4, 2, 1). В этом случае количественный эквивалент цифры равен количественному эквиваленту соответствующей тетрады.
Кодирование, удовлетворяющее всем пяти требованиям, называется совершенным.
Код прямого замещения не является совершенным. Действительно, он удовлетворяет всем требованиям Рутисхаузера, кроме четвертого. Нарушение этого требования не позволяет вводить дополнительный или обратный код, что в свою очередь не позволяет заменить вычитание операцией сложения.
Для выполнения свойства дополнительности можно кодировать десятичную цифру тетрадой Т(х), равной . Полученный код называется кодом с избытком 3, или кодом Штибитца.
Для выполнения свойства дополнительности можно кодировать десятичную цифру тетрадой Т(х), равной . Полученный код называется кодом с избытком 6.
Однако, кодирование с избытком 3 и 6 как и код прямого замещения, не является совершенным т.к. не обладает свойством весомозначности.
Коротко останавливаясь на свойствах возможных вариантов кодирования, целесообразно выполнить следующий анализ.
Для кодирования единицы необходимо, чтобы один из весов был равен 1. Если считать, что р0 = 1, то необходимо чтобы р3 + р2+ р1 = 8. Возможны следующие комбинации весов (р3 , р2, р1) с точностью до их перестановки: (6,1,1), (5,2,1), (4,2,2), (3,2,3), (4,1,3).
Соответствующие варианты кодирования (комбинации весов) сведены в таблицу.
Таблица 1.2 – Варианты двоично–десятичного кодирования
Кодируемая десятичная цифра x |
Значение тетрады Т(х)в системе счисления |
||||||
(8,4,2,1) |
(6,1,1,1) |
(5,2,1,1 ) |
(3,3,2,1) |
(4,3,1,1) |
(2,4,2,1) |
х + 3 |
|
0 |
0000 |
0000 |
0000 |
0000 |
0000 |
0000 |
0011 |
1 |
0001 |
0001 |
0001 |
0001 |
0001 |
0001 |
0100 |
2 |
0010 |
0011 |
0100 |
0010 |
0010 |
0010 |
0101 |
3 |
0011 |
0111 |
0101 |
0011 |
0100 |
0011 |
0110 |
4 |
0100 |
— |
0111 |
0101 |
0110 |
0100 |
0111 |
5 |
0101 |
— |
1000 |
1010 |
1001 |
1011 |
1000 |
6 |
0110 |
1000 |
1010 |
1100 |
1011 |
1100 |
1001 |
7 |
0111 |
1001 |
1011 |
1101 |
1100 |
1101 |
1010 |
8 |
1000 |
1011 |
1110 |
1110 |
1110 |
1110 |
1011 |
9 |
1001 |
1111 |
1111 |
1111 |
1111 |
1111 |
1100 |
Данные таблицы позволяют сделать следующие выводы.
В системе с весами (8,4,2,1) отсутствует свойство дополнительности.
Для случая (6,1,1,1) нарушается первое требование Рутисхаузера: для цифр 4 и 5, т.е. отсутствуют соответствующие тетрады.
В системе с весами (5, 2, 1, 1) не выполняется требование четности для цифр 4 и 5.
В системе с весами (3, 3, 2, 1) не выполняется требование четности для цифр 4 и 5.
Число в десятичной СС |
Число в двоичной СС |
Число в шестнадцатеричной СС |
Число в восьмеричной СС |
Число в двоично–десятичной СС |
|
Код прямого замещения |
Код Айкена—Эмери |
||||
00 |
0000 |
0 |
0 |
0000 0000 |
0000 0000 |
01 |
0001 |
1 |
1 |
0000 0001 |
0000 0001 |
02 |
0010 |
2 |
2 |
0000 0010 |
0000 0010 |
03 |
0011 |
3 |
3 |
0000 0011 |
0000 0011 |
04 |
0100 |
4 |
4 |
0000 0100 |
0000 0100 |
05 |
0101 |
5 |
5 |
0000 0101 |
0000 0101 |
06 |
0110 |
6 |
6 |
0000 0110 |
0000 1100 |
07 |
0111 |
7 |
7 |
0000 0111 |
0000 1101 |
08 |
1000 |
8 |
10 |
0000 1000 |
0000 1110 |
09 |
1001 |
9 |
11 |
0000 1001 |
0000 1111 |
10 |
1010 |
A |
12 |
0001 0000 |
0001 0001 |
11 |
1011 |
B |
13 |
0001 0001 |
0001 0001 |
12 |
1100 |
C |
14 |
0001 0010 |
0001 0010 |
13 |
1101 |
D |
15 |
0001 0011 |
0001 0011 |
14 |
1110 |
E |
16 |
0001 0100 |
0001 0100 |
15 |
1111 |
F |
17 |
0001 0101 |
0001 0101 |
16 |
10000 |
10 |
20 |
0001 0110 |
0001 1100 |
17 |
10001 |
11 |
21 |
0001 0111 |
0001 1101 |
0,0625 |
0,0001 |
0,1 |
0,04 |
0,0000011000100101 |
0,0000110000100101 |
0,125 |
0,001 |
0,2 |
0,1 |
0,000100100101 |
0,000100100101 |
0,25 |
0,01 |
0,4 |
0,2 |
0,00100101 |
0,00100101 |
0,375 |
0,011 |
0,6 |
0,3 |
0,001101110101 |
0,001111010101 |
0,5 |
0,1 |
0,8 |
0,4 |
0,0101 |
0,0101 |
0,625 |
0,101 |
0,A |
0,5 |
0,011000100101 |
0,110000100101 |
0,75 |
0,11 |
0,C |
0,6 |
0,01110101 |
0,11010101 |
Примечание – для экономии места в таблице “0” в целой части дробных BCD чисел записывается не тетрадой, а одной цифрой |
В системе с весами (4, 3, 1, 1) не выполняется требование четности для цифр 2, 3, 6, 7.
Кодирование с избытком 3, как и код прямого замещения, не является совершенным т.к. не обладает свойством весомозначности
В системе с весами (2, 4, 2, 1) все пять требований выполнены, соответствующая арифметика является совершенной и называется в честь авторов — арифметикой Айкена—Эмери.
В таблице 1.3 приведены в качестве примера некоторые числа, представленные в рассмотренных системах.
Таблица 1.3 – Примеры кодирования чисел в машинных системах счисления
Двоично–десятичные системы эффективны при решении задач обработки больших массивов десятичных чисел. Например, при обработке массивов десятичных параметров (экономические задачи). В этом случае, за счет упрощения процедур перевода десятичных чисел в BCD–систему и обратно, может быть достигнуто повышение производительности вычислительного средства.