主要内容

负小数长度

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 × 2Fraction Length 求真实值。

首先求 x 的存储整数。

Q = storedInteger(x)
Q =

  125

使用存储整数求 x 的真实值。

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

       16000

另请参阅