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