Can someone explain how floating point numbers are stored in C, as for 32-bit float, 1 bit is parity, 23 bits for mantissa and 8 bits for exponent. So for numbers greater than 2^23(still in the float range), there is no space in the mantissa to store them.
The 23 bits in the mantissa determine the precision of the number. The 8 bits in the exponent determine the range of the number.
Consider the same problem in decimal terms. To keep it simple, let's say you're allowed a mantissa that's a positive number with 6 decimal digits of precision, and a number from -20 to 20 as the exponent. That means you would be able to store numbers in the range of
(give or take a few zeroes)
The mantissa varies from 1 to 999999. The exponent determines where the decimal point goes.