Here is what a 31-bit exponent 0-bit mantissa encoding looks like compared to float32:
https://gist.github.com/deckar01/3f93802329debe116b0c3570bed...
https://gist.github.com/deckar01/3f93802329debe116b0c3570bed...
exponent *= 2 ** (8 - E)
In the E=8 case then this is just `* 1`. In the E=31 case this is now `* 2*-23`. Python is going to do all of this for you in the float64 domain. I think it's possible that you haven't graphed what you intended.You also don't have subnormals, infinities or propagating NaNs. You manage to only retain the signed 0.
EDIT: And the midpoint of your system is 0.5. Which is a little uncomfortable.