/ / Hvad er flydende kommatal?

Hvad er flydende tal?

Formen for præsentation af gyldig (ellerreelle) tal, hvor de er gemt som en mantisse og en eksponent, er flydende kommatal (måske et punkt, som det er sædvanligt i engelsktalende lande). På trods af dette er tallet forsynet med en fast relativ præcision og en variabel absolut. Den repræsentation, der oftest bruges, er godkendt af standarden IEEE 754. Matematiske operationer, der anvender flydende kommatal, er implementeret i computersystemer, både hardware og software.

flydende kommatal

Punktum eller komma

Den detaljerede decimalseparatorliste indeholder disseEngelsktalende og engelsktalende lande, hvor brøkdelen i talregistreringerne er adskilt fra heltalsdelen med et punkt, og derfor kaldes disse landes terminologi for floating point - "floating point". I Den Russiske Føderation er brøkdelen traditionelt adskilt fra helheden med et komma, derfor betegner det historisk anerkendte udtryk "flydende kommatal" det samme koncept. Ikke desto mindre er begge disse muligheder ganske acceptable i dag i teknisk dokumentation og i russisksproget litteratur.

Udtrykket "floating point-tal" kommer fraat positionsrepræsentationen af ​​et tal repræsenterer et komma (almindelig decimal eller binær - computer), som kan passe hvor som helst blandt strengens cifre. Denne funktion skal diskuteres separat. Dette betyder, at repræsentationen af ​​flydende kommatal kan opfattes som en computerimplementering af eksponentiel notation. Fordelen ved at bruge denne repræsentation i forhold til repræsentationen af ​​fikspunkts- og heltalsformat er, at rækkevidden af ​​værdier vokser væsentligt, mens den relative præcision forbliver den samme.

eksempel

Hvis kommaet i tallet er fast, så skrivdet kan kun være i ét format. For eksempel givet seks heltal i et tal og to cifre i en brøkdel. Dette kan kun gøres på denne måde: 123456.78. Talformatet med flydende komma giver fuld mulighed for udtryk. For eksempel er de samme otte cifre givet. Der kan være et hvilket som helst antal optagemuligheder, hvis programmøren ikke sparer på forpligtelsen til at oprette et tocifret ekstra felt, hvor han vil skrive eksponenterne, som normalt er 10, fra 0 til 16, og det samlede antal cifre vil være ti: 8 + 2.

Nogle optagemuligheder, der tilladertalformat med flydende komma: 12345678000000000000; 0,0000012345678; 123,45678; 1.2345678 og så videre. Dette format har endda en hastighedsenhed! Snarere hastigheden på computersystemet, som fastsætter den hastighed, som computeren udfører operationer med, hvor der er en repræsentation af flydende kommatal. Denne præstation måles i enheder af FLOPS (floating-point operations per second, som oversættes som antallet af operationer per sekund med flydende komma-tal). Denne enhed er den vigtigste til at måle hastigheden af ​​et computersystem.

flydende komma-format

struktur

Skriv et tal i flydende kommaformatskal være som følger, idet man observerer rækkefølgen af ​​obligatoriske dele, da denne notation er eksponentiel, hvor reelle tal er repræsenteret som mantisse og eksponent. Dette er nødvendigt for at repræsentere for store og for små tal, de er meget mere bekvemme at læse. Obligatoriske dele: tal, der skal skrives (N), mantisse (M), eksponenttegn (p) og eksponent (n). De sidste to tegn danner karakteristika for tallet. Så N = M . nP. Sådan skrives flydende kommatal. Eksemplerne vil variere.

1. Det er nødvendigt at skrive tallet en million ned for ikke at blive forvirret i nullerne. 1000000 er normal notation, aritmetik. Og computeren ser sådan ud: 1.0 . 106. Det vil sige ti til sjette potens - tre tegn, isom passer til så mange som seks nuller. Sådan repræsenteres faste og flydende decimaltal, hvor du med det samme kan opdage forskelle i stavemåden.

2. Og et så vanskeligt tal som 1435000000 (en milliard fire hundrede og femogtredive tusinde) kan også ganske enkelt skrives: 1,435 . 109, kun. Ligeledes kan du skrive et hvilket som helst tal med et minustegn. Det er her faste og flydende decimaltal adskiller sig fra hinanden.

Men det er store tal, hvad med små? Ja, det er også nemt.

3. Hvordan udpeger man f.eks. en milliontedel? 0,000001 = 1,0 . 10-6. Både skrivningen af ​​nummeret og dets læsning er meget lettet.

4. Og sværere? Fem hundrede og seksogfyrre milliard: 0,000000546 = 546 . 10-9. Her. Repræsentationsområdet for flydende kommatal er meget bredt.

floating point repræsentation

form

Tallets form kan være normal ellernormaliseret. Normal - respekterer altid nøjagtigheden af ​​flydende kommatal. Det skal bemærkes, at mantissen i denne form, uanset tegnet, er på halvdelen af ​​intervallet: 0 1, hvilket betyder, at 0 ⩽ a < 1. Ikke i normal form, mister tallet sin præcision. Ulempen ved normalformen af ​​et tal er, at mange tal kan skrives på forskellige måder, altså tvetydigt. Et eksempel på forskellig notation af samme tal: 0,0001 = 0,000001 . 102 = 0,00001 . 101 = 0,0001 . 100 = 0,001 . 10-1 = 0,01 . 10-2 og så meget mere er muligt.Derfor bruger datalogi en anden, normaliseret notationsform, hvor mantissen af ​​decimaltal tager en værdi fra én (inklusive) og dermed op til ti (ikke inklusive), og på samme måde tager mantissen for binære tal en værdi fra én (inklusive) til to (ikke inklusive).

Derfor er 1 ⩽ a < 10.Disse er binære flydende kommatal, og denne form for notation fanger ethvert tal (undtagen nul) på en unik måde. Men der er også en ulempe - manglende evne til at repræsentere nul i denne form. Derfor sørger datalogi for brugen af ​​et særligt tegn (bit) for tallet 0. Heltalsdelen af ​​tallet (høj orden) af mantissen i et binært tal, bortset fra nul, i normaliseret form er 1 (implicit en). En sådan notation bruges af standarden IEEE 754. Positionstalsystemer, hvor grundtallet er større end to (ternære, kvaternære og andre systemer), har ikke erhvervet denne egenskab.

skriv et flydende kommatal

Reelle tal

Reelle flydende kommatal er normaltde sker bare, da dette ikke er den eneste, men meget praktiske måde at repræsentere et reelt tal på, som om et kompromis mellem rækken af ​​værdier og nøjagtighed. Dette er en analog af eksponentiel notation, kun udført i en computer. Et flydende kommatal er et sæt af individuelle binære cifre, som er opdelt i skilt (skilt), bestille (eksponent) og mantisse (mantis).Det mest almindelige IEEE 754-format repræsenterer et flydende kommatal som et sæt bits, der koder mantissen med den ene del, graden med den anden del, og tallets fortegn er angivet med én bit: nul er, hvis det er positivt, én, hvis tallet er negativt. Hele rækkefølgen skrives som et heltal (kode med et skift), og mantissen er i normaliseret form, dens brøkdel er i det binære system.

Hvert tegn er en bit, hvilket indikerertegn for et fuldt flydende tal. Mantissen og eksponenten er heltal, de udgør sammen med tegnet repræsentationen af ​​et flydende kommatal. Rækkefølgen kan kaldes en eksponent eller en eksponent. Ikke alle reelle tal kan repræsenteres i en computer i deres nøjagtige værdi, mens resten er repræsenteret som omtrentlige værdier. En meget enklere mulighed er at repræsentere et reelt tal med et fast punkt, hvor de reelle og heltalsdele vil blive gemt separat. Mest sandsynligt på en sådan måde, at heltalsdelen altid er tildelt X bits, og brøkdelen - Y bits. Men processorarkitekturer kender ikke denne måde, og derfor foretrækkes et flydende kommatal.

floating point range

Tilføjelse

Floating point tilføjelse er smukganske enkelt. På grund af IEEE 754-standarden har et enkelt præcisionstal et enormt antal bits, så det er bedst at springe direkte ind i eksemplerne, og det er bedre at tage den mindste flydende komma-repræsentation. For eksempel to tal - X og Y.

VariabelmarkUdstillerMantissa
C01001110
og00111000

Trinene vil være:

a) Tal skal repræsenteres i normaliseret form. Den skjulte enhed er eksplicit repræsenteret. X = 1,110 . 22og Y = 1.000 . 20.

b) Du kan kun fortsætte additionsprocessen ved at udligne eksponenterne, og til dette skal du omskrive værdien af ​​Y. Det vil svare til værdien af ​​det normaliserede tal, selvom det faktisk er denormaliseret.

Beregn forskellen mellem eksponenter af grad 2 - 0 = 2.Skift nu mantissen for at kompensere for disse ændringer, det vil sige læg 2 til eksponenten for det andet led, og forskyd således kommaet for den skjulte enhed to punkter til venstre. Det viser sig 0,0100 . 22. Dette vil svare til den tidligere værdi af Y, det vil sige allerede Y".

c) Nu skal du tilføje mantisser for tallet X og det justerede Y.

1,110 + 0,01 = 10,0

Eksponenten er stadig lig med den repræsenterede eksponent X, som er 2.

d) Beløbet modtaget i den foregående fase,flyttet normaliseringsenheden, hvilket betyder, at du skal flytte eksponenten og gentage summeringen. 10,0 med to bits til venstre for decimaltegnet, nu skal tallet normaliseres, det vil sige, flytte decimaltegnet til venstre med et punkt, og øge eksponenten med 1 tilsvarende. Det viser sig 1.000 . 23.

e) Det er tid til at konvertere det flydende decimaltal til et én-byte system.

summarkUdstillerMantissa
X+Y01010000

konklusion

Som du kan se, er tilføjelse af sådanne tal ikke forsvært, intet at kommaet svæver. Medmindre vi selvfølgelig tæller reduktionen af ​​et tal med en mindre eksponent til et tal med en større (i ovenstående eksempel var disse Y til X), samt genoprettelsen af ​​status quo, dvs. udstedelse af kompensation - flytter mantissens komma til venstre. Når tilføjelsen allerede er udført, er en anden komplikation meget mulig - renormalisering og trunkering af bits, hvis deres nummer ikke stemmer overens med formatet af tallet til dets repræsentation.

multiplikation af flydende komma

Multiplikation

Det binære talsystem tilbyder tomåden, hvorpå flydende kommatal ganges. Denne opgave kan udføres ved en multiplikation, der starter med de mindst betydende cifre, og som begynder med de mest betydende cifre i multiplikatoren. Begge sager indeholder en række operationer, der sekventielt tilføjer delprodukter. Disse additionsoperationer styres af multiplikatorens bit. Det betyder, at hvis der er en enhed i et af cifrene i multiplikatoren, så stiger summen af ​​delprodukter med multiplikanet med den tilsvarende forskydning. Og hvis nul sneg sig ind i kategorien af ​​multiplikatoren, så tilføjes multiplikatoren ikke.

Hvis kun to tal ganges, såproduktets cifre i deres antal kan ikke overstige antallet af cifre i faktorerne med mere end to gange, og for store tal er det meget, meget. Hvis flere tal ganges, så risikerer produktet ikke at passe på skærmen. Derfor er antallet af cifre på enhver digital maskine ganske begrænset, og det tvinger os til at begrænse os til maksimalt det dobbelte af antallet af cifre i addere. Og hvis antallet af cifre er begrænset, indføres der uundgåeligt en fejl i produktet. Hvis mængden af ​​beregninger er stor, så overlejres fejlene, og som et resultat stiger den samlede fejl meget. Her er den eneste udvej at runde resultaterne af multiplikationen, så vil fejlen i produktet vise sig at være fortegnsskiftende. Når en multiplikationsoperation udføres, bliver det muligt at gå ud over gitteret af cifre, men kun fra siden af ​​de nederste, da der er en begrænsning pålagt tal, der er repræsenteret i formen med et fast komma.

Noget forklaring

Det er bedre at starte forfra.Den mest almindelige måde at repræsentere et tal på er som en streng af cifre som et heltal med et komma til allersidst. Denne streng kan have en hvilken som helst længde, og kommaet er på det rigtige sted for det, og adskiller heltal fra dets brøkdel. Systemet sætter nødvendigvis visse betingelser med hensyn til placeringen af ​​kommaet til formatet for at repræsentere et tal med et fast punkt. Eksponentiel notation bruger standard normaliseret repræsentation af tal. Dette er en q n {displaystyle aq^{n}} aqn. Her en {displaystyle a}og, og denne blonde kaldes mantissen. Det var netop om dette, at det blev sagt, at 0 ⩽ a < q. Yderligere skal alt være klart: n {/displaystyle n}n er et heltal, eksponent og q {/displaystyle q}til er også et heltal, der er grundlaget for det givnetalsystemer (og på skrift er det oftest 10). Mantissen vil efterlade et komma efter det første ciffer, som ikke er nul, men længere hen ad posten sendes information om den reelle værdi af tallet.

Et flydende kommatal er meget enser skrevet i en forståelig standardnotation for tal, kun eksponenten og mantissen skrives separat. Sidstnævnte er også i et normaliseret format - med et fikspunkt, som dekorerer det første signifikante ciffer. Det er bare det, at det flydende komma hovedsageligt bruges i computer, altså i elektronisk repræsentation, hvor systemet ikke er decimal, men binært, hvor selv mantissen denormaliseres ved at omarrangere kommaet - nu er det før det første ciffer, hvilket betyder før, og ikke efter det, hvor heltalsdelen i princippet ikke er det. For eksempel vil vores oprindelige decimalsystem låne sine ni til det binære system til midlertidig brug. Og at man vil skrive det ned med en floating-point mantisse som denne: +1001000...0, og indikatoren +0...0100 til den. På den anden side vil decimalsystemet ikke være i stand til at udføre så komplekse beregninger, som det er muligt binært ved brug af flydende kommaform.

floating point eksempler

lang aritmetik

Elektroniske computere harindbyggede softwarepakker, hvor mængden af ​​hukommelse, der er allokeret til mantissen og eksponenten, indstilles programmatisk, kun begrænset af mængden af ​​computerhukommelse. Sådan ser lang regning ud, det vil sige simple operationer på tal, som en computer udfører. Det er lige meget – subtraktion og addition, division og multiplikation, elementære funktioner og at hæve til roden. Men kun tallene er helt anderledes, deres kapacitet kan væsentligt overstige længden af ​​et maskinord. Implementeringen af ​​sådanne operationer sker ikke i hardware, men i software, men grundlæggende hardware bruges i vid udstrækning til at arbejde med antal af meget lavere ordrer. Der er også aritmetik, hvor længden af ​​tal kun er begrænset af mængden af ​​hukommelse - arbitrær præcision aritmetik. Og lange regnestykker bruges på mange områder.

en.Til kompilering af kode (processorer, mikrocontrollere med lav bitdybde - i 10 bit og otte bit bit registre er dette tydeligvis ikke nok til at behandle information fra Analog-til-digital (Analog-til-digital-konverter), og du kan derfor ikke undvære lang aritmetik.

2. Også lang aritmetik bruges til kryptografi, hvor det er nødvendigt at sikre nøjagtigheden af ​​resultatet af eksponentiering eller multiplikation op til 10309. Heltals aritmetik bruges modulo m, et stort naturligt tal, og ikke nødvendigvis et primtal.

3.Software til finansfolk og matematikere kan heller ikke undvære lang aritmetik, fordi dette er den eneste måde at kontrollere resultaterne af beregninger på papir - ved hjælp af en computer, hvilket sikrer høj nøjagtighed af tal. Flydende punkt, de kan involvere en hvilken som helst længde af bitdybde. Men ingeniørberegninger og videnskabsmænds arbejde kræver sjældent indgreb fra softwareberegninger, fordi det er meget vanskeligt at indtaste inputdata uden at begå fejl. De er normalt meget større end afrundingsresultater.

Kamp mod fejl

Under operationer med tal, hvori flyderkomma, er det meget svært at vurdere fejlen i resultaterne. Indtil videre er der ikke opfundet en matematisk teori, der tilfredsstiller alle, som ville hjælpe med at løse dette problem. Men fejlene med heltal er nemme at estimere. Muligheden for at slippe af med unøjagtigheder ligger på overfladen - brug kun tal med et fast komma. For eksempel er finansielle programmer bygget nøjagtigt efter dette princip. Det er dog nemmere der: det nødvendige antal cifre efter decimaltegnet er kendt på forhånd.

Andre applikationer er muligvis ikke begrænset til dette,fordi det er umuligt at arbejde med hverken meget små eller meget store tal. Derfor, når du arbejder, tages det altid i betragtning, at unøjagtigheder er mulige, og derfor er det nødvendigt at runde af, når resultaterne vises. Desuden er automatisk afrunding ofte en utilstrækkelig handling, og derfor er afrunding indstillet med vilje. Sammenligningsoperationen er meget farlig i denne henseende. Her er det ekstremt svært at vurdere størrelsen af ​​fremtidige fejl.