Număr octal de precizie

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 4 iulie 2020; verificările necesită 7 modificări .

Numărul de precizie octală ( eng.  Octuple precision ) este un format computerizat pentru reprezentarea numerelor în virgulă mobilă, ocupând în memorie opt cuvinte duble consecutive, i.e. 32 de octeți . Acest nume se datorează terminologiei consacrate, în care un singur număr de precizie are dimensiunea unui cuvânt dublu. În mod obișnuit, denotă formatul de număr în virgulă mobilă binary256 standard IEEE 754 .

Formatul numărului octal

Semn: 1 bit.
Comanda: 19 biti [1] ; comandă compensată: +262143 (3FFFFh).
Mantissa : 237 de biți (236 sunt stocați în mod explicit).

Număr echivalent de cifre zecimale semnificative (cu aceeași eroare medie de reprezentare relativă): 71,7 [2] .

Exemple de numere octale

Unele constante : [1]

0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = +0 8000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = −0 7FFF F000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = + φ F000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = - Bow 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 16 = 2 −262142 × 2 −236 = 2 −262378 ≈ 2.24800708647703657297018614776265182597360918266100276294348974547709294462 × 10 −78984 (наименьшее положительное субнормальное число ) 0000 0fff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 16 = 2 −262142 × (1 − 2 −236 ) ≈ 2,4824279514643497882993282229138717236776877060796468692709532979137875392 × 10 -78913 (cel mai mare număr subnormal) 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = 2 −262142 ≈ 2.48242795146434978829932822291387172367768770607964686927095329791378756168 × 10 −78913 (наименьшее положительное нормальное число ) 7fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 16 = 2 262143 × (2 − 2 − 236 ) ≈ 1,61132571748576047361957211845200501064402387454966951747637125049607182699 × 10 78913 (cel mai mare număr normal) 3fff efff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff ffff 16 = 1 − 2 −237 ≈ 0,9999999999999999999999999999999999999999999999999999999999999999999999999999999999999995472 (cel mai mare număr mai mic de unu) 3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 16 = 1 (unul) 3fff f000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 16 = 1 + 2 −236 ≈ 1,0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000906 (cel mai mic numar mai mare decat unu)

Suport

Utilizarea preciziei octale este în prezent foarte rară. Apple a implementat adunarea , scăderea și înmulțirea cu precizie octală într - un format diferit de IEEE 754: are o mantisă în complement în doi de 224 de biți și un exponent de 32 de biți . [3] Bibliotecile aritmetice comune cu precizie arbitrară pot fi folosite pentru a obține o precizie octală (sau mai mare), dar nu există încă o implementare hardware cunoscută a acesteia.

Vezi și

Note

  1. 1 2 Aritmetica IEEE
  2. Gavrilov K. V. Despre aproximarea unor funcții transcendentale în aritmetica computerizată.  // Automatizare și inginerie software. - 2020. - Or. 3 . — p. 51–59 .
  3. R. Crandall, J. Papadopoulos. Virgulă mobilă cu precizie octuple pe Apple G4 (copie arhivată pe web.archive.org) . — 2002.