### 4.1.4 Difference between the representation of (3.1-3) and of 0.1

- representation of 0.1 :
  We have :

  0.1=2−4*(1+ |
  1
  2
  | + |
  1
  24
  | + |
  1
  25
  | + |
  1
  28
  | + |
  1
  29
  | +...)= 2−4* |
  ∞
  ∑
  k=0
  | ( |
  1
  24*k
  | + |
  1
  24*k+1
  | )

  hence α=1 and m=1/2+ ∑k=1∞(1/24*k+1/24*k+1), 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).
- representation of a:=3.1-3 :
  Computing a is done by adjusting exponents (here nothing to do), then substract the mantissa, and adjust 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 of 5 positions and we have :

      3f (00111111), b9 (10111001), 99 (10011001), 99 (10011001),
      99 (10011001), 99 (10011001), 99 (10011001), 9a (10100000),

  Therefore a>0.1 and a−0.1=1/250+1/251 (since 100000-11010=110)

Remark
This is the reason why

`floor(1/(3.1-3))`

returns `9` and not `10` when `Digits:=14`.