I've read that they're stored in the form of mantissa and exponent
I've read this document but I could not understand anything.
The floating point number will be stored as a normalized binary floating point encoding with 1 sign bit, 4 bits of fraction and a 3-bit exponent (see Chapter 8, Section 8.7).
Numbers are stored on the computer in binary form. In other words, information is encoded as a sequence of 1's and 0's. On most computers, the memory is organized into 8-bit bytes. This means each 8-bit byte stored in memory will have a separate address.
Decimals are stored as floating points . A 32 bit floating point consists of 23 precision bits, one sign bit, and 8 magnitude bits. The number is written the same as scientific notation but instead of a*10^b, it is a*2^b. This is why we say floats have a limited precision but can be super big.
The float type in Python represents the floating point number. Float is used to represent real numbers and is written with a decimal point dividing the integer and fractional parts. For example, 97.98, 32.3+e18, -32.54e100 all are floating point numbers.
To understand how they are stored, you must first understand what they are and what kind of values they are intended to handle.
Unlike integers, a floating-point value is intended to represent extremely small values as well as extremely large. For normal 32-bit floating-point values, this corresponds to values in the range from 1.175494351 * 10^-38 to 3.40282347 * 10^+38.
Clearly, using only 32 bits, it's not possible to store every digit in such numbers.
When it comes to the representation, you can see all normal floating-point numbers as a value in the range 1.0 to (almost) 2.0, scaled with a power of two. So:
So, what is needed to encode this, as efficiently as possible? What do we really need?
This is encoded as follows, according to the IEEE-754 floating-point standard.
In addition to the normal floating-point values, there are a number of special values:
Finally, the following is a handful of concrete examples (all values are in hex):
In layman's terms, it's essentially scientific notation in binary. The formal standard (with details) is IEEE 754.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With