Here is a pretty good explanation of the format of floating point numbers. As to the question "Why?", hard to say -- perhaps early implementations found that it required less gates to use a bias rather than 2's complement? Also, since the extreme exponent values can signify infinity/NaN/zero/etc, perhaps 2's complement would make those bit patterns more work to detect. I'm really guessing here.