- •1.1. Формы представления чисел
- •Рис 1.2 Представление десятичного числа в формате sfix
- •Рис 1.3 Приближённое представление действительного числа
- •Рис 1.4 Формат данных с плавающей точкой
- •1.2. Понятие прямого, обратного и дополнительного кодов
- •1.5. Представление чисел в форме с плавающей точкой
- •Рис 1.5. Ieee-стандарт внутреннего представления данных формата single
Рис 1.2 Представление десятичного числа в формате sfix
Пример 2.
Представить десятичное число 6.1 в том же самом формате. Из формулы (1.2) определим:
=
6.1/2-4
= 6.1 x 16 = 97.6
Значение
не
является целым числом, поэтому его
необходимо округлить до ближайшего
целого98.
Для этого примера действительное число
будет представлено в форме с фиксированной
точкой с погрешностью
=
2-4
x 0.4 = 0.025
Двоичный
эквивалент
=
98 = 26
+ 25
+ 22
будет равен 0110
0010.
На представленном рисунке легко определить значение абсолютной погрешности.
Рис 1.3 Приближённое представление действительного числа
=
6.125 - 6.1 = 0.025
Чтобы
уменьшить величину погрешности,
необходимо увеличить длину машинного
слова в 2 раза (n=16). Число разрядов под
целую часть числа оставить тем же самым.
С учётом знакового разряда длина дробной
части числа станет равной m=12. Новое
значение
=
6.1 x 2-12
= 2498.6. Из-за того, что результат опять
дробное число его необходимо округлить
до ближайшего целого 24986. Квантованное
значение
=
24986 = 214
+ 213
+ 28
+ 27
+ 24
+ 23
+ 21
в виде 16-ти разрядного слова будет равно:
0110000110011010.
Учитывая масштабирующий множитель
равный 2-12,
получим истинное значение дробной части
числа равное сумме: 2-4
+ 2-5
+ 2-8
+ 2-9
+ 2-11
= 0.10009765625...
Погрешность
в этом случае будет равна
=
0,00009765625. Следует отметить, что при
увеличении длины дробной части числа
на 8 двоичных разрядов величина погрешности
уменьшилась в 28=256
раз.
Замечание.
Погрешность
представления действительных чисел в
форматах ufix,
sfix
не превышает половины веса младшего
двоичного разряда дробной части числа
.
При выборе типа данных необходимо учитывать следующие факторы:
диапазон для результатов вычислений;
требуемую погрешность результата;
ошибки, связанные с квантованием;
алгоритм реализации вычислений;
архитектуру арифметического устройства;
стоимость разработки.
Fixed-Point Blockset позволяет в процессе моделирования цифрового устройства оптимальным образом согласовать эти противоречивые факторы. Real-Time Workshop (RTW) сгенерирует код для целевого процессора.
Форма представления числовых данных с фиксированной точкой имеет существенный недостаток. В ней не представимы одновременно очень большие и очень маленькие числа при практически реализуемом размере машинного слова (32 бита). Для представления чисел в широком диапазоне применяется другая форма - плавающая точка. Основным преимуществом этой формы заключается в том, что при одинаковой длине машинного слова, диапазон представленных чисел значительно превышает диапазон чисел с фиксированной точкой.
Представления числа с плавающей точкой в общем случае имеет вид:
![]()
где
-
мантисса числа;
V - правильная дробь;
-
характеристика числа V;
p - порядок;
s
- основание характеристики.
Порядок p,который может быть положительным или отрицательным целым числом, определяет положение точки в числе V.
Для двоичных чисел (1.11) примет вид:
![]()
Число бит для хранения мантиссы и порядка зависит от типа данных с плавающей точкой. Рассмотрим в качестве примера процессор, в котором слова имеют длину 32 двоичных разряда. Пусть двоичное число V в памяти изображается двоичным словом
W31W30W29...W24W23.......W0
которому соответствует формат данных, показанных на рис.1.4.
