math.frexp() și math.ldexp() în Python

Descompun un număr zecimal în mantisă și exponent de 2, și îl recompun.

Sintaxă
math.frexp(x)
math.ldexp(m, e)

Ce face math.frexp() și math.ldexp()

frexp(x) returnează perechea (m, e) cu x == m * 2**e și 0.5 ≤ |m| < 1. ldexp(m, e) calculează m * 2**e, operația inversă. Sunt utile în calcule numerice de nivel jos și pentru a afla ordinul de mărime binar al unui număr.

Parametri

Parametru Descriere
x Numărul descompus.
m, e Mantisa și exponentul.

Ce returnează

frexp: tuplu (float, int). ldexp: float.

Exemple

Exemplul 1: Descompunere și recompunere

import math
for x in [8.0, 10.0, 0.1]:
    m, e = math.frexp(x)
    print(x, (m, e), math.ldexp(m, e))

Rezultat

8.0 (0.5, 4) 8.0
10.0 (0.625, 4) 10.0
0.1 (0.8, -3) 0.1

Greșeli frecvente

  • Confunzi exponentul binar cu cel zecimal; frexp lucrează cu puteri ale lui 2, nu ale lui 10.

Comenzi înrudite