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;
frexplucrează cu puteri ale lui 2, nu ale lui 10.
Comenzi înrudite
float.hex() și float.fromhex(): Scrie un număr zecimal în format hexazecimal exact și îl citește înapoi.math.log(), log10(), log2() și log1p(): Logaritmi: natural, în orice bază, în baza 10 și în baza 2.math.fmod(), math.remainder() și math.modf(): Variante ale restului împărțirii pentru numere zecimale și separarea părții întregi de cea fracționară.