Представление фиксированной точки

Опубликовано: 28 Января, 2023

Действительные числа имеют дробную составляющую. В этой статье объясняется метод представления вещественных чисел с использованием фиксированных точек. В цифровой обработке сигналов (DSP) и игровых приложениях, где производительность обычно важнее точности, широко используется кодирование данных с фиксированной точкой.

Двоичная точка: Дробные значения, такие как 26,5, представлены с использованием концепции двоичной точки. Десятичная точка в десятичной системе счисления и двоичная точка сопоставимы. Он служит разделителем между целой и дробной частями числа.

Например, вес коэффициента 6 в числе 26,5 равен 10 0 , или 1. Вес коэффициента 5 равен 10 -1 или (5/10 = 1/2 = 0,5).

2 * 101 + 6 * 100 + 5 * 10-1 = 26.5

2 * 10 + 6 * 1 + 0.5 = 26.5

«Двоичная точка» может быть создана с использованием нашего двоичного представления и той же концепции десятичной точки. Двоичная точка, как и в десятичной системе, представляет собой коэффициент выражения 2 0 = 1. Вес каждой цифры (или бита) слева от двоичной точки равен 2 0 , 2 1 , 2 2 и т. д. . Самые правые цифры (или биты) двоичной точки имеют веса 2-1 , 2-2 , 2-3 и так далее.

Для иллюстрации номер 11010.1 2 представляет значение:

11010.12

= 1 * 24 + 1 * 23 + 0 * 22 + 1 * 21 + 0* 20 + 1 * 2-1

= 16 + 8 + 2 + 0.5

= 26.5

Схема переключения:

Когда целое число сдвигается вправо на один бит в двоичной системе, это сравнимо с делением на два. Поскольку мы не можем представить цифру справа от двоичной точки в случае целых чисел, поскольку нет дробной части, эта операция сдвига представляет собой целочисленное деление.

  • Число всегда делится на два, когда битовая комбинация числа сдвинута вправо на один бит.
  • Число умножается на два, когда оно сдвигается влево на один бит.

Как написать число с фиксированной точкой?

Понимание представления чисел с фиксированной точкой требует знания процесса сдвига, описанного выше. Просто неявно установив, что двоичная точка находится в определенном месте числа, мы можем определить тип числа с фиксированной точкой для представления действительного числа в компьютерах (или любом оборудовании в целом). Затем мы будем просто использовать этот неявный стандарт для выражения чисел.

Два аргумента — это все, что требуется для теоретического создания типа с фиксированной точкой:

  1. Ширина представления числа.
  2. Позиция двоичной точки в числе.

обозначение fixed<w, b>, где «w» обозначает общее количество используемых битов (разрядность числа), а «b» обозначает положение двоичной точки, считая от младшего значащего бита (отсчитывая от 0 ).

Беззнаковое представление:

Например, fixed<8,3> означает 8-битное число с фиксированной запятой, крайние правые 3 бита которого являются дробными.

Представление действительного числа:

00010.1102
= 1 * 21 + 1 * 2-1 + 1 * 2-2

= 2 + 0.5 + 0.25

= 2.75

Подписанное представление:

Отрицательные целые числа в двоичных системах счисления должны быть закодированы с использованием представлений чисел со знаком. В математике отрицательные числа обозначаются знаком минус («-») перед ними. Напротив, числа представлены исключительно в виде последовательностей битов в компьютерном оборудовании без дополнительных символов.

Двоичные числа со знаком (+ve или -ve) могут быть представлены одним из трех способов:

  1. Форма знак-величина
  2. форма дополнения 1
  3. форма дополнения 2

Форма «знак-величина» : в форме «знак-величина» знак числа представлен MSB (старший значащий бит, также называемый крайним левым битом), а его величина показана оставшимися битами (в случае 8-битного представления крайний левый бит). является битом знака, а остальные биты являются битом величины).

55 10 = 001101112

−55 10 = 101101112

Форма дополнения до 1 : Дополняя каждый бит в двоичном целом со знаком, можно получить дополнение числа до 1. Результатом является отрицательное число, когда положительное число дополняется 1. Аналогично этому, дополнение отрицательного числа на 1 приводит к положительному числу.

55 10 = 001101112

−55 10 = 110010002

Форма дополнения до 2 : добавляя единицу к дополнению до 1 двоичного числа со знаком, двоичное число можно преобразовать в дополнение до 2. Таким образом, дополнение положительного числа до 2 дает отрицательное число. Дополнение отрицательного числа двумя дает положительное число.

55 10 = 11001000 + 1 (1’s complement + 1 = 2’s complement)

-55 10 = 11001001 2

Представление отрицательного числа с фиксированной точкой:

Рассмотрим число -2,5, фиксированная ширина <w,b> = 4 бита, двоичная точка = 1 бит (предположим, что двоичная точка находится в позиции 1). Сначала представьте 2,5 в двоичном виде, затем найдите его дополнение до 2, и вы получите двоичное представление с фиксированной точкой -2,5.

 2.5 10 = 0101 2

-2.5 10 = 1010 2 + 1 (1’s complement + 1 = 2’s complement)

-2.5 10 = 1011 2

Диапазон представления дополнения 1:

Один бит по существу используется в качестве бита знака для чисел в дополнении к 1, оставляя вам только 7 битов для хранения фактического числа в 8-битном числе.

Следовательно, самое большое число равно 127 (для большего числа потребуется 8 бит, что делает его отрицательным числом).

Наименьшая цифра, вероятно, также будет -127 или -128.

1’s complement:

127 = 01111111 : 1s complement is 10000000

128 = 10000000 : 1s complement is 01111111

Мы видим, что сохранение -128 в дополнении до 1 невозможно (поскольку старший бит не установлен и выглядит как положительное число)

Диапазон дополнения до 1 составляет от -127 до 127.

Диапазон представления дополнения до 2:

Кроме того, один бит в числах с дополнением до 2 эффективно используется в качестве бита знака, оставляя вам только 7 бит для хранения фактического числа в 8-битном целом числе.

2’s complement:

127 = 01111111 : 2s complement is 10000001

128 = 10000000 : 2s complement is 10000000

мы можем видеть, что мы можем хранить -128 в дополнении 2s.

Диапазон дополнения до 2 – от -128 до 127.

Преимущества представления с фиксированной точкой:

  • Целочисленное представление и числа с фиксированной точкой действительно являются близкими родственниками.
  • Из-за этого числа с фиксированной точкой также можно вычислять, используя все арифметические операции, которые компьютер может выполнять над целыми числами.
  • Они так же просты и эффективны, как компьютерная целочисленная арифметика.
  • Для выполнения арифметических операций с вещественными числами с использованием формата с фиксированной запятой мы можем повторно использовать все оборудование, предназначенное для арифметических операций с целыми числами.

Недостатки представления с фиксированной точкой:

  • Потеря диапазона и точности по сравнению с представлениями чисел с плавающей запятой.