語長より大きい小数部の長さ
固定小数点数の語長より大きい小数部の長さは、数値の絶対値が 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
の実際値です。
実際値は、式 を使用して求めることもできます。
まず、x
の整数格納を求めます。
Q = storedInteger(x)
Q = 96
整数格納を使用して x
の実際値を求めます。
real_world_value = double(Q) * 2^-x.FractionLength
real_world_value = 0.0234