Understanding denormalized numbers in floating point representation
Although, the question is a bit old, but it may help people coming here for similar question.

A vital detail was missed out in the article that you referred to and it is that the standard chose to interpret an all 0s exponent to be equivalent to '-126' and not '-127'. One place, where I found a nice explanation (and an explicit statement about this truth) is this article. To quote from it:


  Subnormal Numbers: When all the exponent bits are 0 and the
  leading hidden bit of the siginificand is 0, then the floating point
  number is called a subnormal number. Thus, one logical representation of a subnormal number is
  
  (–1)s × 0.f × 2–127 (all 0s for the exponent) ,
  
  where f has at least one 1 (otherwise the number will be taken as
  0). However, the standard uses –126, i.e., bias +1 for the exponent
  rather than –127 which is the bias for some not so obvious reason,
  possibly because by using –126 instead of –127, the gap between
  the largest subnormal number and the smallest normalized number is smaller.
  
  The largest subnormal number is 0.999999988×2–126. It is close
  to the smallest normalized number 2–126.