For the representation of 0.1:
|
hence α=1 and
m= |
| + |
| ( |
| + |
| ), |
therefore the representation of 0.1 is
3f (00111111), b9 (10111001), 99 (10011001), 99 (10011001), |
99 (10011001), 99 (10011001), 99 (10011001), 9a (10011010),
|
the last octet is 1010, indeed the 2 last bits 01 became 10 because the following digit is 1 (upper rounding).
For the representation of a:=3.1−3:
Computing a is done by adjusting exponents (here nothing
to do), then subtracting the mantissa and adjusting the
exponent of the result to have a normalized float.
The exponent is α=−4 (that corresponds at 2·2−5)
and the bits corresponding to the mantissa begin at 1/2=2·2−6:
the bits of the mantissa are shifted to the left 5 positions
and you get:
3f (00111111), b9 (10111001), 99 (10011001), 99 (10011001), |
99 (10011001), 99 (10011001), 99 (10011001), a0 (10100000),
|
Therefore, a>0.1 and a−0.1=1/250+1/251 (since 100000-11010=110).
Remark:
This is the reason why:
Input:
returns 9 and not 10 when Digits:=14.