В цифровом оборудовании числа хранятся в двоичных словах. Двоичное слово является последовательностью фиксированной длины битов (1's и 0). Как аппаратные компоненты или функции программного обеспечения интерпретируют эту последовательность 1's, и 0 задан по условию тип. Двоичные числа представлены или как фиксированная точка или как типы данных с плавающей точкой.
Тип данных с фиксированной точкой характеризуется размером слова в битах, положении двоичной точки, и подписывается ли это или без знака. Положение двоичной точки является средними значениями, которыми значения фиксированной точки масштабируются и интерпретируются.
Например, бинарное представление обобщенного номера фиксированной точки (или подписанный или без знака) показывают ниже:
где
b i - ith двоичная цифра.
wl является размером слова в битах.
b wl-1 является местоположением старшего значащего, или самый высокий, бит (MSB).
b 0 является местоположением младшего значащего, или самый низкий, бит (LSB).
Двоичной точке показывают четыре места слева от LSB. В этом примере номер, как говорят, имеет четыре дробных бита или дробную длину четыре.
Типы данных с фиксированной точкой могут быть или подписаны или без знака. Подписывается ли значение фиксированной точки или без знака, обычно не кодируется явным образом в двоичном слове; то есть, нет никакого знакового бита. Вместо этого информация о знаке неявно задана в архитектуре ЭВМ.
Бинарные числа фиксированной точки со знаком обычно представляются в компьютерном оборудовании одним из трех способов:
Знак/величина – Один бит двоичного слова является всегда специализированным знаковым битом, в то время как остающиеся биты слова кодируют величину номера. Отрицание с помощью представления знака/величины состоит из зеркального отражения знакового бита от 0 (положительный) 1 (отрицанию), или от 1 до 0.
Поразрядное дополнение до единицы – Отрицание двоичного числа в поразрядном дополнении до единицы требует поразрядного дополнения. Таким образом, весь 0 инвертируются к 1's, и все 1's инвертируются к 0. В обозначении поразрядного дополнения до единицы существует два способа представлять нуль. Двоичное слово всего 0 представляет "положительный" нуль, в то время как двоичное слово всех 1's представляет "отрицательный" нуль.
Дополнение Туо – Отрицание с помощью дополнительного представления подписанного two состоит из небольшой инверсии (перевод в поразрядное дополнение до единицы) сопровождаемый сложением в двоичной системе того. Например, дополнение two 000101 111011.
Дополнение Туо является наиболее распространенным представлением чисел фиксированной точки со знаком и является единственным представлением, используемым документацией Fixed-Point Designer™.
Двоичная точка является средними значениями, которыми масштабируются числа фиксированной точки. Это обычно - программное обеспечение, которое определяет двоичную точку. При выполнении основных математических функций, таких как сложение или вычитание, оборудование использует те же логические схемы независимо от значения масштабного коэффициента. В сущности логические схемы не знают о масштабном коэффициенте. Они выполняют подписанную или двоичную алгебру фиксированной точки без знака, как будто двоичная точка справа от b0.
Fixed-Point Designer поддерживает общую двоичную точку, масштабирующую V = Q ✕ 2E, где V является реальным значением, Q является сохраненным целочисленным значением и фиксированной экспонентой, E равен отрицанию дробной длины. Другими словами, RealWorldValue = StoredInteger ✕ 2−FractionLength.
Дробная длина задает масштабирование сохраненного целочисленного значения. Размер слова ограничивает значения, которые может принять сохраненное целое число, но это не ограничивает значения, которые может принять дробная длина. Программное обеспечение не ограничивает значение экспоненты E на основе размера слова сохраненного целочисленного Q
. Поскольку E равен −FractionLength, ограничивание двоичной точки к тому, чтобы быть непрерывным с частью является ненужным; дробная длина может быть отрицательной или больше, чем размер слова.
Например, слово, состоящее из трех битов без знака, обычно представляется в экспоненциальном представлении одним из следующих способов:
Если бы экспонента была больше 0 или меньше, чем-3, то представление включило бы дополнительные нули:
Эти дополнительные нули никогда не превращаются в единицы, таким образом, они не обнаруживаются в оборудовании. В отличие от экспонент с плавающей точкой, экспонента фиксированной точки никогда не обнаруживается в оборудовании, таким образом, экспоненты фиксированной точки не ограничиваются конечным числом битов.
Рассмотрите значение со знаком с размером слова 8, дробной длиной 10 и сохраненным целочисленным значением 5 (двоичное значение 00000101
). Значение действительного слова вычисляется с помощью формулы RealWorldValue = StoredInteger ✕ 2−FractionLength. В этом случае, RealWorldValue = 5 ✕ 2−10 = 0.0048828125. Поскольку дробная длина на 2 бита более долга, чем размер слова, двоичным значением сохраненного целого числа является x.xx00000101
, где x
заполнитель для неявных нулей. 0.0000000101
(двоичный файл) эквивалентен 0.0048828125
(десятичное число). Для примера с помощью fi
возразите, смотрите Дробную Длину, Больше, Чем Размер слова.
Типы данных с плавающей точкой характеризуются знаковым битом, часть (или мантисса) поле и поле экспоненты. Fixed-Point Designer придерживается IEEE® Standard 754-1985 для Бинарной Арифметики С плавающей точкой (упомянутый просто как Стандарт IEEE 754 в этом руководстве) и поддерживает одиночные игры и удваивается.
При выборе типа данных необходимо рассмотреть эти факторы:
Числовая область значений результата
Точность требуется результата
Связанная ошибка квантования (т.е. округляющийся режим)
Метод для контакта с исключительными арифметическими условиями
Этот выбор зависит от вашего определенного приложения, архитектура ЭВМ, используемая, и стоимость разработки, среди других.
С Fixed-Point Designer можно исследовать отношение между типами данных, областью значений, точностью и ошибкой квантования в моделировании динамических цифровых систем. С Simulink® Coder™ можно сгенерировать производственный код на основе той модели. С HDL Coder™ можно сгенерировать портативный, синтезируемый код VHDL и Verilog из моделей Simulink и графиков Stateflow®.