Main Content

語長より大きい小数部の長さ

固定小数点数の語長より大きい小数部の長さは、数値の絶対値が 1 より小さく、先頭にゼロがある場合に発生します。

x = fi(.0234,1,8)
x = 

    0.0234

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

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

disp(bin(x))
01100000

x の小数部の長さは語長より 4 大きいので、2 進小数点の後、格納整数の 2 進数表現の前に 4 つの暗黙的な先行するゼロがあります。

ゼロが 4 つの先行する x の 2 進数表現を 2 進数から 10 進数へ変換し、小数部の長さに従ってこの値をスケーリングします。

bin2dec('000001100000')*2^(-12)
ans =

    0.0234

結果は x の実際値です。

実際値は、式 Real World Value = Stored Integer Value × 2Fraction Length を使用して求めることもできます。

まず、x の整数格納を求めます。

Q = storedInteger(x)
Q =

   96

整数格納を使用して x の実際値を求めます。

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

    0.0234

参考