Представление фиксированной точки
Действительные числа имеют дробную составляющую. В этой статье объясняется метод представления вещественных чисел с использованием фиксированных точек. В цифровой обработке сигналов (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
Схема переключения:
Когда целое число сдвигается вправо на один бит в двоичной системе, это сравнимо с делением на два. Поскольку мы не можем представить цифру справа от двоичной точки в случае целых чисел, поскольку нет дробной части, эта операция сдвига представляет собой целочисленное деление.
- Число всегда делится на два, когда битовая комбинация числа сдвинута вправо на один бит.
- Число умножается на два, когда оно сдвигается влево на один бит.
Как написать число с фиксированной точкой?
Понимание представления чисел с фиксированной точкой требует знания процесса сдвига, описанного выше. Просто неявно установив, что двоичная точка находится в определенном месте числа, мы можем определить тип числа с фиксированной точкой для представления действительного числа в компьютерах (или любом оборудовании в целом). Затем мы будем просто использовать этот неявный стандарт для выражения чисел.
Два аргумента — это все, что требуется для теоретического создания типа с фиксированной точкой:
- Ширина представления числа.
- Позиция двоичной точки в числе.
обозначение 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
Форма «знак-величина» : в форме «знак-величина» знак числа представлен 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.
Преимущества представления с фиксированной точкой:
- Целочисленное представление и числа с фиксированной точкой действительно являются близкими родственниками.
- Из-за этого числа с фиксированной точкой также можно вычислять, используя все арифметические операции, которые компьютер может выполнять над целыми числами.
- Они так же просты и эффективны, как компьютерная целочисленная арифметика.
- Для выполнения арифметических операций с вещественными числами с использованием формата с фиксированной запятой мы можем повторно использовать все оборудование, предназначенное для арифметических операций с целыми числами.
Недостатки представления с фиксированной точкой:
- Потеря диапазона и точности по сравнению с представлениями чисел с плавающей запятой.