负小数长度
当 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