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