Основы цифровой обработки сигналов

2.5.2.    Двоичные числа с фиксированной запятой (целые числа)

Представление чисел с фиксированной запятой используется для хранения положительных и отрицательных целых чисел: -3, -2, -1, 0, 1, 2, 3. Языки высокого уровня, такие как С и BASIC, обычно выделяют 16 бит для хранения каждого целого числа. В простейшем случае 216 = 65536 возможных битовых комбинаций присваиваются числам от 0 до 65535. Этот формат называется целое число без знака (unsigned integer), и его пример приведен в табл. 2.1 (использовались только четыре бита). Преобразование между битовой комбинацией и числом заключается в изменении основания 2 на основание 10. Недостатком целых чисел без знака является то, что в такой форме не могут быть представлены отрицательные числа.

Представление чисел смещенным двоичным кодом (offset binary) похоже на представление целых чисел без знака, за исключением того, что десятичные значения сдвинуты, чтобы разрешить представление отрицательных чисел. Нпример, в табл. 2.1 десятичные значения сдвинуты на семь, что позволяет представить числа от -7 до 8. Похожим способом 16-битное представление будет использовать для смещения  значение 32767, что позволит задать числа от -32767 до 32768. Смещенный двоичный код не является стандартным форматом, в основном он используется в АЦП и ЦАП. Например, диапазон входного напряжения от -5 В до +5 В может быть отображен при преобразовании числами от 0 до 4095.

Представление знаком и значением (sign and magnitude) является другим простым способом задания отрицательных чисел. Крайний левый разряд называется знаковым разрядом (sign bit) и устанавливается в ноль для положительных чисел и в единицу для отрицательных. Другие разряды представляют собой стандартные двоичные представления абсолютного значения числа. В результате такого представления теряется одна битовая комбинация, поскольку для задания нуля используются две комбинации: 0000 и 1000, поэтому результирующий диапазон этого алгоритма от -32767 до +32767.

Эти три метода представления концептуально просты, но сложно реализуются на аппаратном уровне. Когда в компьютерной программе записывается А = В + С, необходимо представлять себе, как выразить битовую комбинацию В и сложить ее с битовой комбинацией С, чтобы получить битовую комбинацию А.

Дополнительный двоичный код (twos complement) является форматом, который используют инженеры по аппаратной части, и обычно используется для представления чисел в компьютерах. Для того чтобы понять систему кодирования, посмотрите на представление нуля (табл. 2.1), оно соответствует двоичному нулю – 0000. При счете наверх, десятичные числа являются просто двоичным эквивалентом (0 = 0000, 1=0001,

2 = 0010 3 = 0011 и т.д.). Теперь вспомните, что эти четыре бита хранятся в регистре, состоящим из четырех триггеров. Если мы снова начнем с 0000 и проведем операцию вычитания, цифровая аппаратная часть автоматически будет считать в дополнительном двоичном коде: 0 = 0000; -1 = 1111; -2 = 1110; -3 = 1101 и т.д. Аналогично работает одометр в новых автомобилях. При движении вперед он изменяет свое значение как: 00000, 00001, 00002 и далее. При движении назад, одометр отсчитывает: 00000, 99999, 99998 и т.д.

Таблица 2.1 Основные форматы представления чисел с фиксированной запятой