The negative exponent bothers me. Every implementation I've used specifies either mantissa bits or exponent bits, as a positive value. The extraneous '-' everywhere feels like a waste
The numbers are (integer_value * 2 ^ constant_exponent), such that all bits are dedicated to integer_value.