Длина дроби, превышающая длину слова числа с фиксированной точкой, возникает, когда число имеет абсолютное значение меньше единицы и содержит первые нули.
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