- •1. Представление числовой информации в цифровых автоматах
- •1.1. Выбор системы счисления для представления числовой информации
- •1.2. Представление отрицательных чисел
- •1.3. Формы представления чисел
- •2. Арифметические основы цифровых автоматов
- •2.1. Формальные правила сложения и вычитания двоичных чисел
- •2.2. Сложение чисел, представленных в форме с фиксированной запятой
- •2.3.Переполнение разрядной сетки
- •2.4. Сложение чисел, представленных в форме с плавающей запятой
- •3. Умножение двоичных чисел
- •3.1. Методы умножения двоичных чисел
- •3.2. Умножение чисел, представленных в форме с фиксированной запятой в прямом коде
- •3.3. Умножение чисел, представленных в форме с фиксированной запятой в дополнительном коде
- •3.4. Умножение чисел, представленных в форме с фиксированной запятой в обратном коде
- •3.5. Умножение чисел, представленных в форме с плавающей запятой
- •3.6. Ускорение операции умножения
- •5. Цифровые автоматы
- •5.1. Основные понятия
- •5.2. Языки описания цифровых автоматов
- •5.3 Проектирование конечных автоматов
1.2. Представление отрицательных чисел
Для машинного представления отрицательных чисел используют коды прямой, обратный и дополнительный.
Машинное изображение прямого кода числа - . Отсюда следует, что в прямом коде все цифровые разряды отрицательного числа остаются неизменными, а в знаковой части записывается единица. Например, если , то . Положительное число в прямом коде не меняет своего изображения. Например, если , то .
Правила преобразования чисел в прямой код можно сформулировать так:
,
где G – величина, равная весу старшего разряда сетки (для дробей G = 1, а для целых ).
Машинное изображение обратного кода числа . Отсюда следует, что обратный код двоичного числа является инверсным изображением самого числа, в котором все разряды исходного числа принимают инверсное (обратное) значение, т.е. все нули заменяются на единицы, а все единицы – на нули. Например, если , то .
Правила преобразования в обратный код можно сформулировать следующим образом:
,
где B – величина наибольшего числа без знака, размещающегося в n-разрядной сетке (для дробей , а для целых - ).
При проектировании цифровых автоматов необходимо учитывать неоднозначность изображения нуля в обратном коде: +0 изображается 0,00…0, -0 изображается 1,11…1.
Дополнительный код числа A, представляемого в n-разрядной сетке, определяется как
,
где C – величина, равная весу разряда, следующая за старшим разрядом используемой разрядной сетки (для дробей , а для целых чисел ). Например, число запишется в дополнительном коде так:
Дополнительный код является математическим дополнением основанию системы счисления:
.
где - абсолютное значение числа A.
Если рассматривать обратные и дополнительные коды числа, то можно увидеть, что
.
Это соотношение используют для получения дополнительного кода отрицательного числа следующим образом: сначала инвертируется цифровая часть исходного числа, в результате получается его обратный код; затем прибавляется единица в младший разряд цифровой части и тем самым получается дополнительный код этого числа.
1.3. Формы представления чисел
В ЭВМ применяют две формы представления чисел: с фиксированной точкой и с плавающей точкой. Эти формы называют также соответственно естественной и нормальной (полулогарифмической).
При представлении чисел с фиксированной точкой положение точки фиксируется в определенном месте относительно разрядов числа. Обычно подразумевается, что точка находится перед старшим цифровым разрядом или после младшего. В первом случае могут быть представлены только числа, которые по модулю меньше 1, во втором – только целые числа.
На рис. 1.1 показаны примеры форматов данных для представления чисел с фиксированной запятой.
Для представления числа со знаком для кода знака выделяется «знаковый» разряд (обычно крайний слева). В этом разряде 0 соответствует плюсу, 1 – минусу.
На рис. 1.1, а показан формат для чисел с точкой, фиксированной перед старшим разрядом. В этом формате могут быть представлены правильные дроби с точностью до . Если для представления чисел используется прямой код, то они могут принимать значения в диапазоне
.
Используется два варианта представления целых чисел: со знаком и без знака (рис. 1.1, б и рис. 1.1, в).
Если точка фиксируется справа от младшего разряда, то в n – разрядной сетке целых чисел со знаком можно представлять нуль, положительные и отрицательные целые двоичные числа. Дополнительный код позволяет использовать числа в диапазоне
.
Рисунок 1.1. Представление чисел в форме с фиксированной запятой
При представлении целых чисел без знака все разряды разрядной сетки
отводятся под модуль числа.
Представление чисел в форме с плавающей точкой в общем случае имеет вид
,
где - мантисса числа А; p - порядок числа А, q – основание системы счисления.
Мантисса и порядок представляются в системе счисления с основанием q. Порядок p, который может быть положительным или отрицательным целым числом, определяет положение точки в числе.
На рис. 1.2 показаны примеры форматов данных для чисел с плавающей точкой. Формат должен содержать знаковые части и поля для мантиссы и порядка. Выделяются специальные разряды для знака числа (мантиссы) и знака порядка (рис. 1.2, а). Кодирование знаков остается таким же, как было и с фиксированной запятой.
Рисунок 1.2. Представление чисел в формате с плавающей точкой
Выполнение арифметических операций над числами с плавающей точкой требуют помимо выполнения операций над мантиссами определенных операций над порядками. Для упрощения операций над порядками их сводят к действию над целыми положительными числами (числами без знаков), применяя для представления порядков смещенный код (представление чисел с плавающей точкой со смещенным порядком).
В случае представления числа с плавающей запятой со смещенным порядком к его порядку p прибавляется целое число - , где k – число двоичных разрядов, используемых для модуля порядка.
Смещенный порядок всегда положителен (рис.1.2, б).
Такое представление чисел неоднозначно. Для определенности вводятся некоторые ограничения. Наиболее распространено и удобно для представления в ЭВМ ограничение вида
.
Такая форма представления чисел называется нормализованной. В этом случае абсолютное значение мантиссы лежит в пределах от до , где n – количество разрядов для изображения мантиссы без знака.
В процессе вычислений может получиться ненормализованное число. В этом случае машина автоматически нормализует его.
Пусть r старших разрядов мантиссы равно 0. Тогда нормализация заключается в сдвиге мантиссы на r разрядов влево и уменьшении порядка на r единиц, при этом в младшие r разрядов мантиссы записываются нули.