Отрицательная длина дроби

Отрицательная длина дроби возникает, когда входное значение 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.

Вы также можете найти значение реального мира, используя уравнение Real Мировое значение = сохраненное целое число × 2 Длина дроби.

Начните с нахождения сохраненного целого числа x.

Q = storedInteger(x)
Q =

  125

Используйте сохраненное целое число, чтобы найти значение реального мира x.

real_world_value = double(Q) * 2^-x.FractionLength
real_world_value =

       16000

См. также