Flydende kommanummer

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 28. januar 2022; checks kræver 10 redigeringer .

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.

"flydende komma" og "flydende komma"

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.

Navnets oprindelse

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.

Talstruktur

Et flydende kommatal består af følgende dele:

Normale og normaliserede former

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.

Optagelsesmetoder

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.  

Oversigt

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,0144

i 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.

Talinterval, der kan repræsenteres i flydende kommaformat

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

Machine epsilon

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] .

Se også

Noter

  1. E. Cheney, David Kincaid. Numerisk matematik og edb. — Cengage Learning, 2012. — 43– s. — ISBN 1-133-71235-5 .

Litteratur

Links