exponenta event banner

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

Отрицательная длина дроби возникает, когда входное значение 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   World Value = Stored Integer Value  × 2 − Длина дроби.

Начните с поиска сохраненного целого числа x.

Q = storedInteger(x)
Q =

  125

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

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

       16000

См. также