Различают следующие две формы записи чисел в ЭВМ: форма с фиксированной и плавающей запятой.
Форма с фиксированной запятой.При представлении числа в форме с фиксированной запятой разряды слева от запятой представляют целую часть числа и его знак, а справа - дробную часть числа. Число разрядов для целой и дробной части фиксировано. Если запятая фиксируется перед старшим цифровым разрядом, то в машине могут быть представлены только числа по модулю меньше 1.
Недостатки данной формы представления следующие:
- Очень незначительный диапазон представления чисел;
- Невозможность представления целых чисел.
При вычислениях с использованием чисел данного формата необходимо следить за тем чтоб входные данные и результаты не выходили за рамки разрядной сетки. Для этого при программировании величины, которые участвуют в вычислениях, берутся с соответствующими масштабными коэффициентами.
Запятая может быть зафиксирована после младшего цифрового разряда, тогда машина будет представлять только числа по модулю больше 1.
Недостатком данной формы представления является то, что с ее помощью можно представлять только целые числа.
Этот формат используется в простых микропроцессорных системах управления разными технологическими процессами, а также для проведения анализа полученной информации в реальном времени.
Преимуществом рассмотренных способов представления чисел является то, что они реализуются на практике сравнительно простыми схемами с высоким быстродействием.
Форма с плавающей запятой. Числа в форме с плавающей запятой представляются с помощью двух чисел с фиксированной запятой мантиссы и порядка g. Число А записывается в виде
А = (± m ) p± g.
Число А(2) = 0, 0101 представим как А = 0, 101 · 2-1.
Если числа представлены в форме с фиксированной запятой, то разрядная сетка, содержащая b+1 двоичных разрядов (старший - знаковый, остальные - числовые), позволяет представить 2b+1 различных чисел. При представлении чисел в формате с плавающей запятой диапазон представления чисел зависит от величины основы используемой системы счисления и количество порядковых разрядов, а точность вычислений обозначается количеством разрядов мантиссы.
Арифметико-логический аппарат для роботы с числами с плавающей запятой более сложный поскольку должна быть представлена:
- Аппаратура для выполнения операций над мантиссами;
- Аппаратура для выполнения операций над порядками;
- Аппаратура для выполнения вспомогательных операций (измерение порядков, нормализация и тд.)
Существует три основных кода для представления чисел: прямой, дополнительный и обратный.
Прямой код.Правило кодирования: в знаковый разряд кода записывается 0 (для положительных чисел) или 1 (для отрицательных чисел).
Обратный код. Положительные числа кодируются так же, как и в прямом коде. Правило кодирования отрицательных чисел: знаковый разряд равен 1, а числовые разряды исходного числа инвертируются.
Например, число А2= - 10000 в обратном коде [A]обр 2 = 1.01111
Для перехода к прямому коду необходимо применить этот же алгоритм в таком же порядке.
Дополнительный код.Правило кодирования:
если число A > 0, то [A]доп = [A]пр,
если число А < 0, то в знаковый разряд кода записывается 1, числовые разряды исходного числа инвертируются, и к младшему числовому разряду добавляется 1. Из обратного кода получается путем увеличения на 1 (инкрементации).
Например, число А2 = - 10111 в дополнительном коде
Для перехода к прямому коду необходимо применить этот же алгоритм в таком же порядке.
Кодування двоїчних чисел в цифрових пристроях обробки даних.
Двоичные числа в цифровых устройствах кодируются специальным образом в прямой, обратный и дополнительный коды с целью:
- Представления положительных и отрицательных чисел;
- Замены алгебраического суммирования чисел со знаками, арифметическим сложением кодов чисел (без знаковые);
- С целью определения переполнения разрядной сетки сумматора (ППРС).
Положительные числа во всех 3 кодах выглядят одинаково, отрицательные отличаются записью во всех 3 случаях. Положительные числа всегда представляются в прямом коде. Прямой код двоичного отрицательного числа получается следующим образом. Цифровая часть остается неизменной, а в знаковом разряде устанавливается 1. Прямой код используется для приема и выдачи данных, а также для хранения данных в памяти. Арифметические операции в прямом коде выполняются достаточно сложно так как операции над знаками выполняются по разным правилам.
Для того чтобы получить обратный код двоичного отрицательного числа, необходимо в знаковом разряде установить 1, а цифровые разряды инвертировать.
Для того чтобы получить дополнительный код двоичного отрицательного числа, необходимо в знаковый разряд установить 1, а цифровые разряды дополнить до целой 1. Обратный и дополнительный коды используются для выполнения алгебраических операций, а также хранения чисел в памяти. Обратный код больше самого числа на 2 за исключением веса младшего разряда. Дополнительный код также больше самого числа на 2. Так как дополнительный код больше обратного кода на единицу младшего разряда, то для получения дополнительного кода необходимо к его обратному коду прибавить единицу младшего разряда.
В кодах различаю положительный и отрицательный 0. Отрицательный 0 в различных кодах выглядит по разному. Если отбросить 1 переноса из знакового разряда то положительные и отрицательные нули совпадают. Это является одним из достоинств дополнительного кода.