- •Основы прикладной теории цифровых автоматов
- •Основы прикладной теории цифровЫх автоматов
- •Оглавление
- •Предисловие
- •Глава 1. Информационные основы цифровых автоматов
- •1.1. Информация и общие принципы ее преобразования
- •1.2. Обмен информацией между различными информационными устройствами
- •1.3. Аппаратные средства хранения и обработки информации
- •1.4. Общие понятия о цифровом автомате и алгоритме
- •Глава 2. Представление числовой информации в цифровом автомате
- •2.1. Системы счисления и понятие кода
- •2.2. Выбор системы счисления
- •2.3. Формальные правила двоичной арифметики
- •2.4. Перевод числа из одной позиционной системы счисления в другую
- •Глава 3. Формы представления чисел в цифровых автоматах
- •3.1. Форма представления двоичных чисел с фиксированной запятой
- •3.2. Представление отрицательных чисел в формате с фиксированной запятой
- •3.3. Форма представление чисел с плавающей запятой
- •3.4. Перевод чисел из формата с фиксированной запятой в формат с плавающей запятой и обратно
- •3.5. Погрешности представления чисел
- •20 [A]ф 2n - 1 для целых чисел
- •Глава 4. Арифметические действия с двоичными числами
- •4.1. Сложение двоичных чисел
- •4.1.1. Алгебраическое сложение чисел, представленных в форме с фиксированной запятой
- •4.1.2. Переполнение разрядной сетки
- •4.1.3. Модифицированный прямой, обратный и дополнительный код
- •4.1.4. Алгебраическое сложение чисел, представленных в форме с плавающей запятой
- •4.2. Умножение двоичных чисел
- •4.2.1. Методы умножения двоичных чисел
- •4.2.2. Умножение чисел, представленных в форме с фиксированной запятой
- •4.2.3. Умножение чисел, представленных в форме с плавающей запятой
- •4.2.4. Ускорение операции умножения
- •4.3. Деление двоичных чисел
- •4.3.1. Деление двоичных чисел, представленных в форме с фиксированной запятой.
- •4.3.2. Деление двоичных чисел, представленных в форме с плавающей запятой.
- •4.4. Оценка точности выполнения арифметических операций
- •4.4.1. Погрешность округления
- •Глава 5. Выполнение операций над десятичными числами
- •5.1. Представление десятичных чисел в д-кодах
- •5.2. Формальные правила поразрядного сложения в д-кодах
- •5.3. Представление отрицательных чисел в д-кодах
- •5.4. Выполнение операций сложения и вычитания в д-кодах
- •5.5. Умножение чисел в д-кодах
- •5.6. Деление чисел в д-кодах
- •5.7. Перевод чисел из д-кода в двоичный и из двоичного в д-код
- •Глава 6 контроль работы цифрового автомата
- •6.1. Основные понятия теории кодирования
- •6.2. Кодирование по методу четности-нечетности
- •6.3. Коды Хеминга
- •6.4. Контроль по модулю
- •6.5. Контроль арифметических операций
- •Глава 7. Основы алгебры логики
- •7.1. Основные понятия алгебры логики
- •7.2. Свойства элементарных функций алгебры логики
- •7.3. Аналитическое представление функций алгебры логики
- •7.4. Совершенные нормальные формы
- •7.5. Системы функций алгебры логики
- •7.6. Числовое и геометрическое представление логических функций
- •Глава 8. Упрощение и минимизация логических функций
- •8.1. Задача минимизации
- •8.2. Метод Квайна и импликантные матрицы
- •8.3. Метод Карно (диаграммы Вейча)
- •Глава 9. Методы анализа и синтеза логических электронных схем
- •9.1. Логические операторы электронных схем или цепей
- •9.1.1. Задачи анализа и синтеза электронных схем
- •9.2. Синтез логических схем с одним выходом
- •9.3. Электронные схемы с несколькими выходами
- •9.4. Временные булевы функции и последовательностные автоматы
- •Глава 10. Введение в теорию автоматов и структурный синтез цифровых автоматов
- •10.1. Основные понятия и определения
- •10.2. Методы структурного синтеза и языки описания цифровых автоматов
- •10.3. Элементарный автомат (триггерный элемент)
- •10.4. Синтез цифрового автомата с памятью
- •Глава 11 алгоритмы реализации арифметических действий в цифровых автоматах
- •11.1. Общие принципы разработки алгоритмов
- •11.2. Алгоритмы реализации арифметических действий с операндами, представленными в форме с фиксированной запятой
- •11.2.1.Сложение и вычитание
- •11.2.2. Умножение
- •11.2.3. Деление
- •11.3 Алгоритмы реализации арифметических действий с операндами, представленными в форме с плавающей запятой
- •11.3.1. Сложение и вычитание
- •11.3.2. Умножение
- •11.3.3. Деление
- •11.4. Блок-схемы регистра накапливающего сумматора
- •11.4.1. Для работы с обратным кодом
- •11.4.2. Для работы с дополнительным кодом
- •11.5. Алгоритм извлечения квадратного корня операнда с плавающей запятой
- •Определения основных понятий и терминов
- •Литература
Глава 2. Представление числовой информации в цифровом автомате
2.1. Системы счисления и понятие кода
Как уже отмечалось, в процессе переработки информации цифровые ЭВМ - компьютеры, оперируют числами, которые представляются в некоторой системе счисления.
Система счисления - это совокупность приемов и правил для записи чисел цифровыми знаками. Запись числа в некоторой системе счисления часто называют кодом числа.
Элементы (символы) алфавита, которые используются для записи чисел в некоторой системе счисления, принято называть цифрами. Каждой цифре данного числа однозначно сопоставляется ее количественный (числовой) эквивалент.
Различают позиционные и непозиционные системы счисления.
Непозиционная система счисления - это система, для которой значение символа, т.е. цифры, не зависит от его положения в числе. К таким системам относится, в частности, римская система (правда с некоторыми оговорками). Здесь, например, символ V всегда означает пять, вне зависимости от места его появления в записи числа. Есть и другие современные непозиционные системы.
Позиционная система счисления - это система, в которой значение каждой цифры зависит от ее числового эквивалента и от ее места (позиции) в числе, т.е. один и тот же символ (цифра) может принимать различные значения.
Наиболее известной позиционной системой счисления является десятичная ситема счисления. Например, в десятичном числе 555 первая цифра справа означает 5 единиц, соседняя с ней - 5 десятков, а левая - 5 сотен.
В связи с тем, что в цифровых автоматах в основном используются позиционные системы счисления, то мы в дальнейшем будем рассматривать только такие системы.
Любая позиционная система счисления характеризуется основанием.
Основание или базис q естественной позиционной системы счисления это количество знаков или символов, используемых для изображения числа в данной системе.
Поэтому, возможно бесчисленное множество позиционных систем, т.к. за основание можно принять любое число, образовав новую систему счисления.
Когда мы представляем, т.е. записываем некоторое число в позиционной системе счисления мы размещаем соответствующие цифры числа по отдельным нужным позициям, которые принято называть разрядами числа в данной позиционной системе счисления. Количество разрядов в записи числа называется разрядностью числа и совпадает с его длиной.
В позиционной системе счисления справедливо равенство:
Aq = anqn + an-1qn-1 + ... + a1q1 + a0q0 + a-1q-1 + ... + a-mq-m, (2.1)
или
=
где Aq это произвольное число, записанное в системе счисления с основанием q; ai - коэффициенты ряда, т.е. цифры системы счисления; n, m - количество целых и дробных разрядов соответственно.
Например, согласно (2.1)
1961,3210 = 1103 + 9102 + 6101 + 1100 + 310-1 + 210-2,
124=5378 = 182 + 281 + 480 + 58-1 + 38-2 + 78-3,
1001,11012 = 123 + 022 + 021 + 120 + 12-1 + 12-2 + 02-3 + 12-4.
Индекс, приписываемый к числу, указывает систему счисления, в которой представлено данное число.
Основание системы счисления показывает сколько различных значений в пределах i-того разряда может принимать каждая цифра ai числа A. Номера разрядов в позиционной системе счисления отсчитываются в целой части влево от запятой, а в дробной - вправо от запятой. Причем, нумерация разрядов начинается с 0. Величина основания позиционной системы счисления определяет ее название: для десятичной системы это будет 10, для восьмеричной - 8, для двоичной - 2 и т.д. Как уже отмечалось, обычно вместо названия системы счисления используют термин "код числа". Например, под понятием двоичный код подразумевается число, представленное в двоичной системе счисления, под понятием десятичный код - в десятичной системе счисления и т.д.
Для записи числа в десятичной системе используется 10 различных цифр от 0 до 9:
a10 = (0,1,2,3,4,5,6,7,8,9)=
в шестнадцатеричной - 16:
a16 = (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)=
где A = 10, B = 11, C = 12, D = 13, E = 14, F = 15,
в восьмеричной - 8:
a8 = (0,1,2,3,4,5,6,7)=
в двоичной - 2:
a2 = (0,1)\
Согласно (2.1) каждый разряд числа в двоичной системе счисления слева от запятой представляется двойкой в соответствующей положительной степени, а справа от запятой - двойкой в отрицательной степени. Например:
24 23 22 21 20 2-1 2-2 2-3 2-4
16 8 4 2 1, 0,5 0,25 0,125 0,0625
Примеры представления чисел в различных системах счисления:
1010 = 10102 = 128 = A16
1610 = 100002 = 208 = 1016
25510 = 111111112 = 3778 = FF16
Для обработки информации в компьютере обычно используется двоичная система счисления. Это объясняется, в частности, тем, что для размещения чисел (операндов) в компьютерах используются регистры и ячейки памяти, состоящие из триггеров или элементов с триггерной характеристикой, которые, как известно, имеют два устойчивых состояния. Одному из этих состояний ставится в соответствие 1, а другому - 0. Каждый из триггеров отводится для размещения наименьшей информационной единицы в двоичной системе счисления - двоичного разряда, который называется битом. Восемь бит есть байт.
Количество триггеров, т.е. двоичных разрядов, в регистре или ячейке памяти определяет длину слова, характерную для данного компьютера, а совокупность этих двоичных разрядов называется разрядной сеткой. Номер разряда такой сетки, отведенной для изображения целого числа в двоичной системе счисления, совпадает с соответствующим показателем степени двойки.
Таким образом, длина числа - это количество позиций (или разрядов) в записи числа. Для разных систем счисления характерна разная длина разрядной сетки, необходимая для записи одного и того же числа. Например, 9610 = 1408 = 11000002, т.е. чем меньше основание системы счисления, тем больше длина числа.
В любых цифровых автоматах длина разрядной сетки выбранной системы счисления фиксированна, что принципиально ограничивает точность и диапазон представления чисел.
Пусть длина разрядной сетки равна любому положительному числу, например n. Тогда
(Aq)max = qn - 1; (Aq)min = -(qn - 1)
Например, в двоичной системе счисления, если n = 3, то (A2)max = 1112 = 710, т.е. максимальное положительное число, которое может быть записано есть 7, а минимальное -7, представление которого в двоичной системе будет обсуждаться позже.
Диапазон представления чисел в заданной системе счисления - это интервал числовой оси, заключенный между максимальным и минимальным числами, значение которых, как мы видим, зависит от длины разрядной сетки.
Вес разряда Pi числа в позиционной системе счисления - это отношение
Pi = qi / q0 = qi
где i - номер разряда справа налево, а q0 это первый разряд и его номер равен 0, а значение равно 1.
Если в данном разряде накопилось значение единиц равное или больше q, то должна происходить передача единицы в соседний старший разряд. При сложении чисел, представленных в любой позиционной системе счисления, такие передачи информации называют переносами, а при вычитании - заемами. Передача переносов и заемов происходит последовательно от разряда к разряду. Эти процедуры хорошо известны всем из правил арифметических действий с десятичными числами.
Помимо обычной двоичной системы счисления были предложены двоичные системы счисления, в которых для изображения чисел используются символы 1, -1 или 0, -1. Существуют еще, так называемые, избыточные двоичные системы счисления, например, с символами 0, 1, -1. Но на практике в подавляющем большинстве случаев используется обычная двоичная система счисления.
При обмене данными между компьютером и внешними устройствами возникает необходимость в обмене знаковыми и буквенными символами. Этим символам в компьютере также ставится в соответствие некоторый код в двоичной системе счисления. Для представления цифр и букв в двоичной системе в настоящее время наиболее распространен код ASCII. Для представления любого символа в этом коде отводится 8 двоичных разрядов, т.е. один байт.
Примеры кода ASCII приведены в таблице 2.1.
Т а б л и ц а 2.1.
Символы Десятичный код Двоичный код Восьмерич-ный код Шестнадцате-ричный код
0 48 0110000 060 30
1 49 0110001 61 31
2 50 0110010 62 32
A 65 1000001 101 41
B 66 1000010 102 42
F 70 1000110 106 46
: 58 0111010 72 3F
( 40 0101000 50 28