Denormalized representation is necessary to be able to represent 0 and very small values such as 10-38 = .000...001 (37 0's).
What is the smallest positive float value? We need
s = 0 e = 0 frac = 0x000001 (22 leading 0's and a 1; only 23 bits, drop first 0)