frexp(n) # (m,e)
n : is the input number n == m * 2**e
Example
import math
print(math.frexp(4))
Output of this is here.
(0.5,3)
We can check the output
print((0.5)*(2**(3))) # 4.0
Examples with negative numbers
import math
print(math.frexp(-5)) # (-0.625,3)
print((-0.625)*(2**(3))) # -5.0
Using 0
import math
print(math.frexp(0)) # (0.0, 0)
Use Case: Scientific Computing
frexp() is useful in breaking down floating-point numbers, particularly in scientific computing or low-level operations where manipulating mantissa and exponents is required.
import math
mantissa, exponent = math.frexp(128.0) # Outputs: (0.5, 8)
print(f"Mantissa: {mantissa}, Exponent: {exponent}")
mantissa, exponent = math.frexp(8)
print(math.ldexp(mantissa, exponent)) # Outputs 8.0
Both functions are often paired to break down and reconstruct numbers.