Negative Fraction Length

A negative fraction length occurs when the input value of a fi object contains trailing zeros before the decimal point. For example,

x = fi(16000,1,8)

produces a signed fixed-point number with a word length of 8 bits and best precision fraction length.

x =

16000

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

View the binary representation of x.

disp(bin(x))
01111101

There are seven implicit zeros at the end of this number before the binary point because the fraction length of x is -7.

Convert from binary to decimal the binary representation of x with seven zero bits appended to the end.

bin2dec('011111010000000')
ans =

16000

The result is the real world value of x.

You can also find the real world value using the equation .

Start by finding the stored integer of x.

Q = storedInteger(x)
Q =

125

Use the stored integer to find the real world value of x.

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

16000 