IEEE 754-1985
IEEE 754-1985 [1] és un estàndard històric de la indústria per representar nombres de coma flotant en ordinadors, adoptat oficialment el 1985 i substituït el 2008 per IEEE 754-2008, i de nou el 2019 per una revisió menor IEEE 754-2019.[2] Durant els seus 23 anys, va ser el format més utilitzat per al càlcul de coma flotant. Es va implementar en programari, en forma de biblioteques de coma flotant, i en maquinari, en les instruccions de moltes CPU i FPU. El primer circuit integrat per implementar l'esborrany del que es convertiria en IEEE 754-1985 va ser l'Intel 8087.[3]
IEEE 754-1985 representa nombres en binari, proporcionant definicions per a quatre nivells de precisió, dels quals els dos més utilitzats són:
Nivell | Amplada | Gamma a tota precisió | Precisió |
---|---|---|---|
Precisió única | 32 bits | ±1,18 ×10−38 a ±3,4 ×1038 | Aproximadament 7 dígits decimals |
Doble precisió | 64 bits | ±2,23 ×10−308 a ±1,80 ×10308 | Aproximadament 16 dígits decimals |
L'estàndard també defineix representacions per a l'infinit positiu i negatiu, un "zero negatiu", cinc excepcions per gestionar resultats no vàlids com la divisió per zero, valors especials anomenats NaNs per representar aquestes excepcions, nombres desnormals per representar nombres més petits que els mostrats anteriorment i quatre modes d'arrodoniments.
Representació dels nombres
[modifica]Nombres de coma flotant en IEEE El format 754 consta de tres camps: un bit de signe, un exponent esbiaixat i una fracció. L'exemple següent il·lustra el significat de cadascun.
El nombre decimal 0,15625 10 representat en binari és 0,00101 ₂ (és a dir, 1/8 + 1/32). (Els índexs indiquen la base numèrica . ) De manera anàloga a la notació científica, on els nombres s'escriuen per tenir un sol dígit diferent de zero a l'esquerra del punt decimal, tornem a escriure aquest nombre perquè tingui un únic bit a l'esquerra del "punt binari". Simplement multipliquem per la potència adequada de 2 per compensar el desplaçament dels bits deixats per tres posicions: [4]
Ara podem llegir la fracció i l'exponent: la fracció és .01 i l'exponent és −3.
Com s'il·lustra a les imatges, els tres camps de l'IEEE 754 representació d'aquest nombre són:
- signe = 0, perquè el nombre és positiu. (1 indica negatiu. )
- exponent esbiaixat = −3 + el "biaix". En precisió única, el biaix és 127, de manera que en aquest exemple l'exponent esbiaixat és 124; en doble precisió, el biaix és 1023, de manera que l'exponent esbiaixat en aquest exemple és 1020.
- fracció = .01000… ₂ .
- IEEE 754 afegeix un biaix a l'exponent perquè els nombres es puguin comparar còmodament en molts casos amb el mateix maquinari que compara nombres enters de complement de 2 amb signe. Utilitzant un exponent esbiaixat, el menor de dos nombres positius de coma flotant sortirà "menys que" el major seguint el mateix ordre que per als enters de signe i magnitud. Si dos nombres de coma flotant tenen signes diferents, la comparació de signe i magnitud també funciona amb exponents esbiaixats. Tanmateix, si els dos nombres de coma flotant amb exponent esbiaixat són negatius, l'ordenació s'ha d'invertir. Si l'exponent es representés com, per exemple, un nombre de complement de 2, la comparació per veure quin dels dos nombres és més gran no seria tan convenient.
Referències
[modifica]- ↑ IEEE Standard for Binary Floating-Point Arithmetic (en anglès), 1985. DOI 10.1109/IEEESTD.1985.82928. ISBN 0-7381-1165-1.
- ↑ «ANSI/IEEE Std 754-2019» (en anglès). 754r.ucbtest.org. [Consulta: 6 agost 2019].
- ↑ «IEEE Standards Association» (en anglès). [Consulta: 9 setembre 2023].
- ↑ «IEEE Standard 754 Floating Point Numbers» (en anglès americà), 12-09-2018. [Consulta: 9 setembre 2023].