Et flydende kommatal (eller flydende kommatal ) er en eksponentiel form for at repræsentere reelle (reelle) tal , hvor tallet er gemt som en mantisse og en eksponent ( eksponent ). I dette tilfælde har flydende kommatal en fast relativ præcision og en variabel absolut. Den mest almindeligt anvendte repræsentation er angivet i IEEE 754- standarden . Implementeringen af matematiske operationer med flydende kommatal i computersystemer kan være både hardware og software.
Da i nogle, overvejende engelsktalende og engelsktalende lande, når man skriver tal, er heltalsdelen adskilt fra brøkpunktet, optræder udtrykket "flydende komma" i disse landes terminologi . Da den heltallige del af et tal i Rusland traditionelt er adskilt fra brøkdelen med et komma, er udtrykket "flydende komma" historisk brugt til at henvise til det samme koncept, men på nuværende tidspunkt kan begge muligheder findes på russisksproget litteratur og teknisk dokumentation.
Navnet "flydende komma" kommer af, at et komma i positionsrepræsentationen af et tal (decimaltegn, eller, for computere, et binært komma - herefter blot et komma) kan placeres hvor som helst i forhold til cifrene i strengen. Denne kommaposition er angivet separat i den interne repræsentation. Således kan repræsentationen af et tal i flydende kommaform ses som en computerimplementering af eksponentiel notation for tal.
Fordelen ved at bruge flydende komma-repræsentation af tal frem for fast-punkt -repræsentation (og heltal ) er, at et meget større område af værdier kan bruges, mens den samme relative præcision bevares . For eksempel kan et tal, der har 6 heltal og 2 decimaler, repræsenteres som 123.456,78 i fikspunktsform . Til gengæld kan du i flydende kommaformat i de samme 8 cifre skrive tallene 1.2345678 ; 1.234.567,8 ; 0,000012345678 ; 12 345 678 000 000 000 og så videre, men til dette er det nødvendigt at have et ekstra tocifret felt til registrering af eksponenterne for grundtallet 10 fra 0 til 16, mens det samlede antal cifre vil være 8 + 2 = 10 .
Den hastighed, hvormed en computer udfører operationer med tal repræsenteret i flydende-komma-form, måles i FLOPS (fra det engelske flydende-komma-operationer per sekund - "[antal] flydende-komma-operationer per sekund") og er en af de vigtigste enheder til måling af hastigheden af computersystemer.
Et flydende kommatal består af følgende dele:
Den normale form for et flydende kommatal er en sådan form, hvor mantissen (uden at tage hensyn til tegnet) er på halv-intervallet , dvs.
Denne form for notation har en ulempe: nogle tal skrives tvetydigt (f.eks. kan 0,0001 skrives som 0,000001⋅10 2 , 0,00001⋅10 1 , 0,0001⋅10 0 , 0,001 ⋅ , 0 og 0,001 ⋅ 10 og ⋅ så på), derfor er en anden form for notation også almindelig (især inden for datalogi) - normaliseret , hvor mantissen af et decimaltal tager værdier fra 1 (inklusive) til 10 (eksklusivt), det vil sige (tilsvarende mantisse af et binært tal tager værdier fra 1 til 2). I denne form er ethvert tal (undtagen ) skrevet på en unik måde. Ulempen er, at det er umuligt at repræsentere 0 i denne form, så repræsentationen af tal i datalogi giver et særligt tegn ( bit ) for tallet 0.
Den højeste bit (heltalsdelen af tallet) af mantissen af et binært tal (undtagen 0) i en normaliseret form er lig med 1 (den såkaldte implicitte enhed ), derfor, når man skriver mantissen af et tal i en computer, kan den høje bit udelades, som bruges i IEEE 754 standarden . I positionstalsystemer med en grundtal større end 2 (i ternær , kvartær osv.) eksisterer denne egenskab ikke.
Med begrænsede designmuligheder (f.eks. visning af et tal på en indikator med syv segmenter ), og også, hvis det er nødvendigt, give hurtig og bekvem indtastning af tal, i stedet for at skrive formen m b e ( m er mantissen; b er base , oftest 10; e er eksponenten), skriv kun mantissen og eksponenten, adskil dem med bogstavet "E" (fra den engelske eksponent ). I dette tilfælde antages basen implicit at være lig med 10. For eksempel skrives tallet 1,528535047⋅10 −25 i dette tilfælde som 1,528535047E-25.
Der er flere måder, hvorpå strenge af cifre kan repræsentere tal:
At skrive et tal i flydende kommaform giver dig mulighed for at udføre beregninger over en bred vifte af værdier ved at kombinere et fast antal cifre og præcision. For eksempel, i decimalrepræsentation af flydende kommatal (3 cifre), multiplikationsoperationen, som vi ville skrive som
0,12 × 0,12 = 0,0144i normal form er repræsenteret som
(1,20⋅10 −1 ) × (1,20⋅10 −1 ) = (1,44⋅10 −2 ).I fast punktformat ville vi få tvungen afrunding
0,120 × 0,120 = 0,014.Vi har mistet cifferet længst til højre i tallet, da dette format ikke tillader kommaet at "flyde" langs nummerindtastningen.
Udvalget af tal, der kan skrives på denne måde, afhænger af antallet af bit, der er allokeret til at repræsentere mantissen og eksponenten. På en typisk 32-bit computer, der bruger dobbelt præcision (64 bit), er mantissen 1 bit fortegn + 52 bit, eksponenten er 1 bit fortegn + 10 bit. Således opnår vi et nøjagtighedsområde fra cirka 4,94⋅10 −324 til 1,79⋅10 308 (fra 2 −52 × 2 −1022 til ~1 × 2 1024 ). (eller fra 3,7⋅10 -1126 til 9,99⋅10 1091 ). I IEEE 754 -standarden er flere værdier af denne type reserveret for at tillade, at specielle værdier kan repræsenteres. Disse inkluderer værdierne NaN (ikke et tal) og +/-INF (uendeligt ) som følge af division med nul- operationer, eller når det numeriske område overskrides. Også inkluderet her er denormaliserede tal , som har en mantisse mindre end én. Specialiserede enheder (såsom GPU'er ) mangler ofte understøttelse af specielle numre. Der er softwarepakker, hvor mængden af hukommelse, der er allokeret til mantissen og eksponenten, er indstillet programmatisk og kun er begrænset af mængden af tilgængelig computerhukommelse (se Arbitrær præcisionsaritmetik ).
Nøjagtighed | Enkelt | Dobbelt | Udvidet |
---|---|---|---|
Størrelse (bytes) | fire | otte | ti |
Antal decimaler | ~7.2 | ~15.9 | ~19.2 |
Mindste værdi (>0), denorm | 1,4⋅10 −45 | 4,9⋅10 -324 | 3,7⋅10 −1126 |
Laveste værdi (>0), normal | 1,2⋅10 −38 | 2,3⋅10 −308 | 1⋅10 −1091 |
Højeste værdi | 3,4×10 +38 | 1,7×10 +308 | 9,9×10 +1091 |
felter | SEF | SEF | SEIF |
Marginstørrelser | 1-8-23 | 1-11-52 | 1-15-1-63 |
I modsætning til tal med faste punkt er gitteret af tal, som flydende komma-aritmetik kan vise, ikke ensartet: det er tættere for tal med små eksponenter og sparsommere for tal med store eksponenter. Men den relative fejl ved at skrive tal er den samme for små tal og for store. Machine epsilon er det mindste positive tal ε sådan at (tegnet angiver maskinaddition). Groft sagt korrelerede tallene a og b , således at , maskinen ikke skelner.
For enkelt præcision , det vil sige cirka 7 signifikante cifre . For dobbelt præcision: , 15 signifikante cifre [1] .
Datatyper | |
---|---|
Ufortolkelig | |
Numerisk | |
Tekst | |
Reference | |
Sammensatte | |
abstrakt | |
Andet | |
relaterede emner |