Main Content

負の小数部の長さ

負の小数部の長さは、fi オブジェクトの入力値に、小数点の前に後続ゼロが含まれる場合に発生します。以下に例を示します。

x = fi(16000,1,8)

これは、語長が 8 ビットで小数部の長さが最高精度の符号付き固定小数点数を作成します。

x = 

       16000

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 8
        FractionLength: -7

x の 2 進数表現を確認します。

disp(bin(x))
01111101

この数の末尾には、2 進小数点の前に 7 つの暗黙的ゼロがあります。これは x の小数部の長さが -7 だからです。

2 進数から 10 進数に変換すると、x の 2 進数表現には末尾に 7 つのゼロ ビットが追加されます。

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

参考