Menge flotant

La representació de menge flotant (en anglés, floating point) és una forma de notació científica usada en les computadores en la qual es poden representar número real extremadament grans i menuts d'una manera molt eficient i compacta i en la que es poden realisar operacions aritmètiques. L'estàndart actual per a la representació en menge flotant és l'IEEE 754.
Notació científica
[editar | editar còdic]- Artícul principal → Notació científica.
Com la representació en menge flotant és casi idèntica a la notació científica tradicional, en alguns afegitons i algunes diferències, primer es descriurà la notació científica per a entendre cóm funciona i després es descriurà la representació de menge flotant i les diferències.
Representació
[editar | editar còdic]La notació científica s'usa per a representar número real. Sent r el número real a representar, la representació en notació científica està composta per tres parts:
- c. El coeficient, format per un número real en un sol dígit sancer seguit d'una menge (o punt) i de varis dígits fraccionarios.
- b. La base, que en el nostre sistema decimal és 10, i en el sistema binari dels ordenadors és 2.
- i. El exponent sancer, el qual eleva la base a una potència.
Coeficient
[editar | editar còdic]Un signe en el coeficient indica si el número real és positiu o negatiu.
El coeficient té una cantitat determinada de dígits significatius, els quals indiquen la precisió del número representat, quants més dígits tinga el coeficient, més precisa és la representació. Per eixemple, el número π pot representar-se en notació científica en 3 sifres significatives, 3,14 x 100, o en 12 sifres significatives, 3,14159265359 x 100; la segona representació té molta més precisió que la primera.
Base i exponent
[editar | editar còdic]El coeficient es multiplica per la base elevada a un exponent sancer. En el sistema decimal la base és 10. En multiplicar el coeficient per la base elevada a una potència sancera, es desplaça la menge del coeficient tantes posicions (tants dígits) com indique l'exponent. La menge es desplaça cap a la dreta si l'exponent és positiu o cap a l'esquerra si és negatiu.
Eixemple de cóm canvia un número en variar l'exponent de la base:
- 2,71828 x 10-2 representa a el número real
0,0271828 - 2,71828 x 10-1 representa a el número real
0,271828 - 2,71828 x 10 0 representa a el número real
2,71828(l'exponent zero indica que la menge no es desplaça) - 2,71828 x 10 1 representa a el número real
27,1828 - 2,71828 x 10 2 representa a el número real
271,828
Eixemple
[editar | editar còdic]Un eixemple de número en notació científica és el següent:
- -1,234 567 89 x 103
El coeficient és -1,23456789, té 9 dígits significatius i està multiplicat per la base dèu elevada a la 3. El signe del coeficient indica si el número real representat per la notació científica és positiu o negatiu.
El valor de la potència indica quantes posicions (quants dígits) deu desplaçar-se la menge del coeficient per a obtindre el número real final. El signe de la potència indica si eixe desplaçament de la menge deu fer-se cap a la dreta o cap a l'esquerra: una potència positiva indica que el desplaçament de la menge és cap a la dreta, mentres que un signe negatiu indica que el desplaçament deu ser cap a l'esquerra. Si l'exponent és zero, la menge no es desplaça cap posició. La raó de la denominació «menge flotant» és perque la menja es desplaça o «sura» tants dígits com indica l'exponent de la base; en canviar l'exponent, la menge «flota» a una atra posició.
En el número representat en la notació científica anterior, -1,23456789 x 103, l'exponent és 3 positiu, lo que indica que la menge del coeficient -1,23456789 deu desplaçar-se 3 posicions cap a la dreta, donant com resultat el número real equivalent:
- -1234,567 89
Seguix una taula en eixemples de número real de tres dígits significatius i la seua representació en notació científica:
| Número real | Notació científica |
|---|---|
| 123 000 000 000 000 000 000,0 | 1,23 x 1020 |
| 123 000 000,0 | 1,23 x 108 |
| 1230,0 | 1,23 x 103 |
| 123,0 | 1,23 x 102 |
| 12,3 | 1,23 x 101 |
| 1,23 | 1,23 x 100 |
| 0,123 | 1,23 x 10-1 |
| 0,012 3 | 1,23 x 10-2 |
| 0,001 23 | 1,23 x 10-3 |
| 0,000 000 012 3 | 1,23 x 10-8 |
| 0,000 000 000 000 000 000 012 3 | 1,23 x 10-20 |
Com pot vore's en la taula, la representació en notació científica dels número real és molt més compactar quan els números són molt grans en magnitut o quan són de magnitut molt chicoteta (propencs a zero); per això, s'usa molt en ciència, a on cal manejar sifres enormes, com la massa del Sol, 1,98892 × 1030 kg, o molt menudes, com la càrrega de l'electró, -1,602176487 × 10-19 coulombs, i també per això s'usa, en forma de menge flotant, per a la representació de número real en la computadora.
Representació en les computadores i en les calculadores
[editar | editar còdic]Per a l'entrada i el desplegament de números en notació científica, les computadores i les calculadores poden representar-los de diferents maneres. Per eixemple, depenent del sistema, la velocitat de la llum, 2,99792458 x 108, pot representar-se com seguix:
| Notació | Comentari |
|---|---|
| 2,99792458 x 108 | Notació científica estàndar usada en ciència i tecnologia. |
| 2,99792458i8 | Usada generalment en les computadores i en les calculadores; a voltes la "i" és mayúscula. |
| 2,99792458d8 | Usada en el llenguage BASIC per a representar números de doble precisió (15 dígits significatius). S'usa la «i», com en l'eixemple anterior, per a números de simple precisió (6 1/2 dígits significatius). |
| 2,99792458 x 108 | Usada en calculadores. L'exponent de 10 (l'expressió x 108) s'ingressa usant distintes tecles depenent de la calculadora, com a 10x o EXP |
Sistema binari
[editar | editar còdic]- Artícul principal → Sistema binario.
Un valor real es pot estendre en una cantitat arbitrària de dígits. La menge flotant permet representar solament una cantitat llimitada de dígits d'un número real; és dir, solament es treballarà en els dígits més significatius (els de major pes) de el número real, de tal manera que un número real generalment no es podrà representar en total precisió sino com una aproximació que dependrà de la cantitat de dígits significatius que tinga la representació en menge flotant en que s'està treballant. La llimitació es troba quan existixen dígits de pes menor al dels dígits de la part significativa. En este cas, estos solen redonejar-se i, si són molt menuts, es trunquen. No obstant, i segons l'us, la rellevància d'eixes senyes pot ser despreciable, raó per la qual el método és interessant, pese a ser una potencial font d'error.
En la representació binaria de menge flotant, el bit de major pes definix el valor del signe (0 per a positiu i 1 per a negatiu). Li seguixen una série de bits que definixen l'exponent. El restant de bits són la part significativa.
Degut a que la part significativa està generalment normalisada, en estos casos el bit més significatiu de la part significativa sempre és 1, aixina que no es representa quan s'almagasena sino que s'assumix implícitament. Per a poder realisar els càlculs, eixe bit implícit es fa explícit abans d'operar en el número en menge flotant. Hi ha atres casos a on el bit més significatiu no és un 1, com en la representació del número zero, o quan el número és molt chicotet en magnitut i reglota la capacitat de l'exponent, en el cas del qual els dígits significatius es representen d'una manera denormalizada per a no perdre la precisió d'un sol colp sino progressivament. En estos casos, el bit més significatiu és zero i el número va perdent precisió poc a poc (mentres que en realisar càlculs este es faça més chicotet en magnitut) fins que al final es convertix en zero.
Eixemple
[editar | editar còdic]En els pròxims eixemples es descriu la notació de menge flotant. Avall hi ha tres números en una representació de menge flotant de 16 bits. El bit de l'esquerra és el signe, després hi ha 6 bits per a l'exponent, seguits de 9 bits per a la part significativa:
Signe
[editar | editar còdic]El bit de l'esquerra expressa el signe, en 0 indicant que el número és positiu i 1 indicant que el número és negatiu. En els eixemples de dalt, el primer número és negatiu i els atres dos són positius.
Exponent
[editar | editar còdic]L'exponent indica quànt es deu desplaçar (cap a la dreta o cap a l'esquerra) la menge binaria de la part significativa. En este cas, l'exponent ocupa 6 bits capaços de representar 64 valors diferents; és dir, és un exponent binari (de base 2) que va des de -31 a +32 per a representar potències de 2 entre 2-31 i 2+32 i indica que la menge binaria es pot desplaçar fins a 31 dígits binaris cap a l'esquerra (un número molt propenc a zero) i fins a 32 dígits binaris cap a la dreta (un número molt gran).
Pero l'exponent no s'almagasena com un número binari en signe (des de -31 fins a +32), sino com un sancer positiu equivalent que va des de 0 fins a 63. Per a això, a l'exponent se li deu sumar un desplaçament (bias) que, en este cas de l'exponent de 6 bits (64 valors), és de 31 (31 és la mitat dels 64 valors que es poden representar, menys 1) i, al final, el ranc de l'exponent de -31 a +32 queda representat internament com un número entre 0 i 63, a on els números entre 31 i 63 representen els exponents entre 0 i 32 i els números entre 0 i 30 representen els exponents entre -31 i -1 respectivament:
-31 0 32 <-- Exponent binari real
+-------+-------+-------+-------+
0 31 63 <-- Representació en menge flotant
de l'exponent de 6 bits
(És l'exponent binari més un bit de 31)
Part significativa
[editar | editar còdic]La part significativa, en este cas, està formada per 10 dígits binaris significatius, dels quals 9 són dígits explícits i 1 implícit que no s'almagasena.
Esta part significativa generalment està normalisada i tindrà sempre un 1 com el bit més significatiu. Degut a que, llevat certes excepcions, el bit més significatiu del significante sempre és 1, per a aforrar espai i per a aumentar la precisió en un bit, este bit no s'almagasena, i per això es denomina bit amagat o implícit; no obstant, abans de realisar els càlculs este bit implícit deu convertir-se en un bit explícit.
Número real representats
[editar | editar còdic]La notació genèrica para la menge flotant descrita dalt representa respectivament els següents número real (expressats en binari). El color roig indica el bit més significatiu, que quan s'almagasena és implícit (vore dalt la part significativa en la representació de menge flotant), pero quan es fan els càlculs o quan es mostra l'informació es torna explícit:
- (La menge es desplaça 4 posicions binàries (bits) a la dreta)
- (La menge es desplaça 4 posicions binàries a l'esquerra)
- (La menge es desplaça 10 posicions binàries a la dreta)
- (en tots els valors expressats en representació binaria)
Comparació en la menge fixa
[editar | editar còdic]Per a un tamany determinat de bytes, la notació en menge flotant pot ser més llenta de processar i és menys precisa que la notació en menge fixa, ya que, ademés d'almagasenar el número (part significativa), també deu almagasenar-se l'exponent, pero permet un major ranc en els números que es poden representar.
Coprocessador numèric i biblioteques de menge flotant
[editar | editar còdic]Degut a que les operacions aritmètiques que es realisen en números en menge flotant són complexes, molts sistemes destinen un processador especial específic per a este tipo d'operacions, denominat unitat de menge flotant, o tenen incorporats components especialisats. En els casos a on no existixca esta facilitat o l'hardware de menge flotant no puga realisar determinades operacions, s'utilisen biblioteques de software per a realisar els càlculs.
Vore també
[editar | editar còdic]- x87
- Sifres significatives
- Notació posicional
- Base (aritmètica)
- Tipo de senya real
- Sistema de numeració decimal
- Sistema binari
- Unitats d'informació
- Este artícul conté una traducció derivada de «Coma flotante» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.