Отрицательная длина дроби возникает, когда входное значение fi объект содержит конечные нули перед десятичной запятой. Например,
x = fi(16000,1,8)
создает знаковое число с фиксированной точкой с длиной слова 8 бит и лучшей точностью длины дроби.
x =
16000
DataTypeMode: Fixed-point: binary point scaling
Signedness: Signed
WordLength: 8
FractionLength: -7Просмотр двоичного представления x.
disp(bin(x))
01111101
В конце этого числа перед двоичной точкой имеется семь неявных нулей, поскольку длина дроби x является -7.
Преобразование двоичного представления из двоичного в десятичное x с семью нулевыми битами, присоединенными к концу.
bin2dec('011111010000000')ans =
16000Результатом является реальная стоимость x.
Можно также найти значение реального мира с помощью уравнения Длина дроби.
Начните с поиска сохраненного целого числа x.
Q = storedInteger(x)
Q = 125
Используйте сохраненное целое число, чтобы найти реальное значение x.
real_world_value = double(Q) * 2^-x.FractionLength
real_world_value =
16000