DannelseHøyskoler og universiteter

Hva er et flyttall?

Formen for representasjon av ekte (eller ekte) tall, hvor de er lagret som en mantissa og eksponent, er flytende punktnumre (kanskje et punkt, som det er vanlig i engelsktalende land). Til tross for dette er nummeret forsynt med en fast relativ nøyaktighet og et varierende absolutt. Representasjonen som brukes oftest, er godkjent av IEEE 754-standarden. Matematiske operasjoner, hvor flytende punktnummer brukes, implementeres i datasystemer - både maskinvare og programvare.

Punkt eller komma

I den detaljerte listen over decimalseparator er de engelskspråklige og engelsktalende landene angitt, der i delregistrene deles fraksjonen fra hele delen av en prikk, og derfor kalles terminologien til disse landene flytende punkt - "flytpunkt". I Russland er den fraksjonelle delen av helheten tradisjonelt skilt med komma, og det er derfor den historisk anerkjente termen "flytende poeng" betegner dette begrepet. Likevel, både i den tekniske dokumentasjonen og i den russisk-språklige litteraturen, er begge disse varianter ganske akseptable.

Begrepet "flytende punktnumre" kommer fra det faktum at posisjonsrepresentasjonen av et tall representerer et komma (vanlig desimal eller binær datamaskin) som kan passe hvor som helst mellom strengens tall. Denne funksjonen må diskuteres separat. Dette betyr at representasjon av flytende punktnumre kan betraktes som en datamaskinimplementering av en eksponentiell nummeroppføring. Fordelen ved å bruke en slik representasjon over representasjonen av et format med et fast komma og heltall er at verdien av verdier vokser vesentlig, mens den relative nøyaktigheten forblir uendret.

eksempel

Hvis kommaet i nummeret er løst, kan du skrive det i bare ett format. For eksempel er seks biter av heltall i nummer og to biter i brøkdel gitt. Dette kan bare gjøres på denne måten: 123456,78. Formatet av flytende punktnumre gir full mulighet for uttrykk. For eksempel er de samme åtte bitene gitt. Varianter av opptak kan være så lenge programmereren ikke trenger å lage et tosifret tilleggsfelt, hvor han vil skrive ned eksponentene, som vanligvis er 10, fra 0 til 16, og totalt antall vil være ti: 8 + 2.

Noen alternativer for skriving som tillater formatet av flytende punktnumre: 12345678000000000000; ,0000012345678; 123,45678; 1,2345678 og så videre. Dette formatet har til og med en hastighetsmåling! Snarere hastigheten til datasystemet, som løser hastigheten som datamaskinen utfører operasjoner, der det er en representasjon av flytende punktnumre. Dette måles når det gjelder FLOPS (flytende punktoperasjoner per sekund, som oversettes som antall operasjoner per sekund med flytende punktnumre). Denne enheten er den viktigste for å måle hastigheten til datasystemet.

struktur

For å skrive et tall i flytende punktformat, trenger du følgende måte, observere sekvensen av nødvendige deler, siden denne oppføringen er eksponentiell, hvor de reelle tallene er representert som en mantissa og ordre. Dette er nødvendig for å representere for store og for små tall, det er mye mer praktisk å lese dem. Obligatoriske deler: Det registrerte nummeret (N), Mantissa (M), Tegnet på bestillingen (p) og rekkefølgen (n). De to siste tegnene er karakteristiske for nummeret. Derfor er N = M. N p . Så tallene er skrevet med et flytende komma. Eksemplene vil bli variert.

1. Det er nødvendig å skrive ned nummer én million for ikke å bli forvirret i nuller. 1000000 er en vanlig oppføring, en aritmetisk. En datamaskin ser slik ut: 1.0 . 10 6 . Det er ti i sjette grad - tre tegn, som passer så mange som seks nuller. Dermed oppstår representasjon av fastpunkt og flytpunkt, hvor du umiddelbart kan oppdage forskjeller i stavemåte.

2. Og så vanskelig nummer som 1435000000 (en milliard fire hundre og tretti tusen) kan også enkelt skrives ned: 1.435 . 10 9 , bare. På samme måte kan du skrive et hvilket som helst tall med et minustegn. Dette er hvor fastpunkts- og flytpunktstallene er forskjellige fra hverandre.

Men disse er store tall, hvordan å håndtere små? Ja, for lett.

3. For eksempel, hvordan du betegner en millionste? 0,000001 = 1,0 . 10 -6 . Ledig lettere skriving av nummeret, og dets lesing.

4. Og vanskeligere? Fem hundre og seksogti seks milliarder: 0.000000546 = 546 . 10 -9 . Her. " Utvalget av representasjon av flytende punktnumre er svært bredt.

form

Skjemaet til et tall kan være normalt eller normalisert. Normal - observerer alltid presisjonen av flytende punktnumre. Det skal bemerkes at mantissen i denne formen, uten å ta hensyn til tegnet, er halvveis gjennom intervallet: 0 1, dermed 0 ⩽ a <1. Nummeret mister ikke nøyaktigheten i normal form. Ulempen med den normale form av et tall er at mange tall kan skrives på forskjellige måter, det vil si tvetydig. Et eksempel på en annen post med samme nummer: 0.0001 = 0, 000001 . 10 2 = 0,00001 . 10 1 = 0,0001 . 10 0 = 0,001 . 10 -1 = 0,01 . 10 -2 og så kan du fortsatt mye. Det er derfor i datavitenskap en annen normalisert form for rekord, hvor mantittene av desimaltall tar en verdi fra en (inkluderende) og dermed opptil ti (ikke inkluderende), og på samme måte tar mantittet av binære tall en verdi fra en (inkluderende) til to (ikke inkludert).

Derfor er 1 ⩽ a <10. Dette er binære flytende punktnumre, og denne form for skriving løser et hvilket som helst tall (unntatt null) unikt. Men det er også en ulempe - umuligheten i denne formen er null. Derfor gir datavitenskap for nummer 0 bruk av en spesiell karakteristikk (bit). Heltalldelen av tallet (høyeste siffer) av mantissen i et binært tall unntatt null i normalisert form er 1 (implisitt enhet). En slik oversikt brukes av IEEE 754-standarden. Positional notation systemer, hvor basen er mer enn to (ternær, kvaternær og andre systemer), er denne eiendommen ikke ervervet.

Reelle tall

Flytepunkts flytende punktnumre er vanligvis den eneste måten, fordi dette ikke er den eneste, men veldig praktiske måten å representere et reelt tall, som det var et kompromiss mellom en rekke verdier og presisjon. Dette er en analog av en eksponentiell plate som bare er utført i datamaskinen. Et flytende punktnummer er et sett med individuelle biter adskilt av et tegn, ordre (eksponent) og en mantis (mantis). Det vanligste IEEE 754-formatet er et flytende punktnummer som et sett med biter som koder for en del av mantissen, den andre delen er en kraft, og et enkelt tegn angir talltegnet: null er hvis det er positivt, en er om tallet er negativt. Hele rekkefølgen er skrevet som et heltall (kode med skift), og mantissen er i normalisert form, sin fraksjonelle del er i binærsystemet.

Hver karakter er en bit, som indikerer et tegn på et fullt flytende punktnummer. Mantittene og ordren er heltall, de er kombinert med et tegn og gjør representasjonen av et flytende punktnummer. En ordre kan kalles eksponent eller eksponent. Ikke alle reelle tall kan representeres i datamaskinen i deres eksakte betydning, mens resten er representert ved omtrentlige verdier. En mye enklere variant er å representere et reelt tall med et fast punkt, hvor den virkelige og hele delen lagres separat. Sannsynligvis, på en slik måte at hele delen alltid tildeles X bits, og brøkdel - Y bits. Men prosessorarkitekturer kjenner ikke denne metoden, og derfor er preferansen gitt til flytpunktet.

tillegg

Å legge til flytende poeng tall er ganske enkelt. I forbindelse med IEEE 754-standarden har singelpresisjonen til et tall et stort antall biter, så det er bedre å gå direkte til eksempler, og det er bedre å ta den minste representasjonen av et flytende punktnummer. For eksempel, to tall - X og Y.

variabel mark eksponent mantissa
X 0 1001 110
Y 0 0111 000

Trinnene er:

A) Tallene skal presenteres i en normalisert form. Tydeligvis vises en skjult enhet. X = 1,110 . 2 2 og Y = 1000 . 2 0 .

B) Tilsetningsprosessen kan fortsettes bare ved å ligestille eksponenterne, og for dette er det nødvendig å omskrive verdien av Y. Den vil svare til verdien av det normaliserte nummeret, selv om det faktisk blir denormalisert.

Beregn forskjellen på eksponenter i grad 2 - 0 = 2. Flytt nå mantissaen for å kompensere for disse endringene, det vil si, legg til 2 til eksponenten til den andre summen, og dermed skifte kommaet til den skjulte enheten til to punkter til venstre. Dette gir 0,0100 . 2 2 . Dette vil være ekvivalent med den forrige verdien av Y, det vil si allerede Y '.

C) Nå må vi kaste mantissasene til tallet X og den justerte Y.

1,110 + 0,01 = 10,0

Eksponenten er fortsatt lik den presenterte indikatoren X, som er lik 2.

D) Mengden som er mottatt i det forrige trinnet har forskjøvet enheten for normalisering, så du må flytte eksponenten og gjenta summeringen. 10,0 med to biter til venstre for kommaet, nå må tallet normaliseres, det vil si, flytt kommaet til venstre med ett punkt, og øk eksponenten med 1. Dette viser seg å være 1.000 . 2 3 .

E) Det er på tide å konvertere flytpunktet til et enkeltbytessystem.

sum mark eksponent mantissa
X + Y 0 1010 000

konklusjon

Som du kan se, er det ikke så vanskelig å legge opp slike tall, ingenting som kommaet flyter. Hvis vi selvfølgelig ikke vurderer reduksjonen av et tall med en mindre eksponent til et større antall (i eksemplet gitt det var Y til X), og også gjenopprettelsen av status quo, det vil si utstedelse av kompensasjon - bevegelsen av komma til venstre for mantissen. Når tillegget allerede er gjort, er det veldig mulig og en annen vanskelighet - renormalisering og bit trunking, hvis deres nummer ikke samsvarer med formatet på nummeret som representerer det.

multiplikasjon

Det binære systemet har to måter å multiplisere flytende punktnumre. Denne oppgaven kan utføres ved å multiplisere, som begynner med lavere ordre siffer og som starter med de høyeste sifrene i multiplikatoren. Begge sakene inneholder en rekke operasjoner, etter hvert som det legges opp private verk. Disse tilleggsoperasjonene styres av brikkene i multiplikatoren. Derfor, hvis det er ett i en av tallene i multiplikatoren, blir summen av partiproduktene multiplisert med tilsvarende skift. Og hvis null multipliseres i multiplikatoren, blir ikke multiplikaten lagt til.

Hvis multiplikasjon av bare to tall er laget, kan tallene for produktet i mengden ikke overskride antall siffer som er inkludert i faktorene mer enn to ganger, og for store tall er dette veldig, veldig mye. Hvis flere tall blir multiplisert, risikerer produktet ikke å bli plassert på skjermen. Derfor er antall sifre i en hvilken som helst digital automat automatisk helt begrenset, og dette tvinger oss til å begrense oss maksimalt til antall sifre i totalisatorene. Og hvis antall siffer er begrenset, kommer en feil uunngåelig inn i arbeidet. Hvis volumet av beregninger er stort, blir feilene lagt over, og som følge av dette øker den totale feilen betydelig. Her er den eneste måten å avrunde multiplikasjonsresultatene, så vil feilen av produktet vise seg å være vekslende. Når multiplikasjonsoperasjonen utføres, er det mulig å gå utover sifferruten, men bare fra nedre ordens side, fordi begrensningen på tallene som er representert i semikolonformen, er løst.

Noen forklaringer

Det er bedre å starte først. Den vanligste måten å representere et tall på er som en streng med sifre som et helt tall, hvor kommaet er ment i slutten. Denne strengen kan ha lengde, og kommaet er på det mest nødvendige stedet for det, og separerer hele tallet fra den delvise delen av den. Formatet av et fastpunktsrepresentasjon av et system stiller nødvendigvis visse forhold for kommasens plassering. Den eksponentielle notasjonen bruker standard normalisert representasjon av tall. Dette er aqn {\ displaystyle aq ^ {n}} aq n . Her en {\ displaystyle a} a , og denne blonder kalles en mantissa. Omtrent dette ble det sagt at 0 ⩽ a n er et heltall, eksponent og q {/ displaystyle q} q er også et heltall, som er grunnlaget for det oppgitte nummersystemet (og i brevet er det vanligvis 10). Mantissa vil legge igjen et komma etter det første sifferet, som ikke er null, men informasjonen om den reelle verdien av nummeret overføres videre av posten.

Det flytende punktnummeret ligner på standard standardnotasjon for tall, kun eksponenten og mantissen registreres separat. Sistnevnte er også i normalisert format - med et fast komma, som pryder den første signifikante figuren. Bare flytende komma brukes hovedsakelig i datamaskinen, det vil si i den elektroniske representasjonen, hvor systemet ikke er desimal, men binært, hvor selv mantissen er denormalisert av kommaet - nå er det før det første sifferet, før og ikke etter det, hvor hele delen I prinsippet kan det ikke være. For eksempel vil vårt eget desimalanlegg gi sine ni til det binære systemet for midlertidig bruk. Og hun vil skrive den med et flytende punktmantissa som dette: +1001000 ... 0 og +0 ... 0100 til det. Men desimalsystemet kan ikke produsere så komplekse beregninger som mulig i binær, ved hjelp av en flytende punktform.

Lang aritmetikk

I elektroniske datamaskiner er det innebygde programvarepakker, hvor mengden minne som er tildelt for mantissa og eksponenten, er programmert, begrenset bare til størrelsen på datamaskinens minne. Dette er hvor lang tid aritmetikken ser ut, det vil si enkle operasjoner på tall utført av en datamaskin. Disse er alle de samme - subtraksjon og tillegg, divisjon og multiplikasjon, elementære funksjoner og ereksjon til roten. Men bare tallene er helt forskjellige, deres bitdybde kan betydelig overskride lengden på datamaskinordet. Implementeringen av slike operasjoner er ikke maskinvare, men programvare, men den grunnleggende maskinvaren er mye brukt i arbeid med numerisk mye lavere bestillinger. Det er også aritmetisk, hvor lengden på tall er begrenset utelukkende til mengden minne - vilkårlig presisjon aritmetikk. En lang aritmetikk brukes i mange områder.

1. For å kompilere koden (prosessorer, småbit mikrokontrollere - 10 bits og 8-bits bitregistre, er dette tydeligvis ikke nok til å behandle informasjonen med Analog-til-digital, og derfor ikke uten lang aritmetikk.

2. Det er også en lang aritmetisk benyttes for kryptering, hvor det er nødvendig for å sikre nøyaktigheten av resultatet av eksponensiering eller multiplikasjon til 10.309. Integer aritmetiske brukes modulo m - et stort naturlig tall, og er ikke nødvendigvis enkel.

3. Programvaren for finans og matematikere, også, er ikke uten en lang aritmetikk, fordi den eneste måten for å kontrollere resultatene av de beregninger på papir - ved hjelp av datamaskinen, som sikrer høy nøyaktighet av tallene. Flytende punkt de kan innebære et hvilket som helst antall av lang utladning. Men de tekniske beregninger og arbeidet til forskere krever intervensjon program beregninger veldig ofte, fordi det er svært vanskelig å gjøre det innførte beløp uten å gjøre feil. de er vanligvis mye mer omfangsrik enn avrundings resultater.

Slåss med feil

Når et antall operasjoner i hvilken den flytende punkt, er det meget vanskelig å bedømme nøyaktigheten av resultatene. ennå ikke oppfunnet tilfreds all den matematiske teorien som vil bidra til å løse dette problemet. Men feilen heltall evaluere lett. Muligheten for å bli kvitt unøyaktigheter på overflaten - bare bruk bare antallet fast punkt. For eksempel bygget et økonomisk program på dette prinsippet. Men det er enklere: det nødvendige antall sifre etter komma er kjent på forhånd.

Andre programmer er ikke begrenset til, fordi du ikke kan arbeide med enten svært små eller veldig store tall. Så når du jobber alltid tar hensyn til at det kan være unøyaktigheter, og fordi avledning av resultatene er det nødvendig å runde. Videre er automatisk avrunding ofte en manglende virkning, og derfor avrunding er definert spesielt. Veldig farlig i denne sammenheng, sammenligning operasjon. Det er enda anslå mengden av fremtidige feil er ekstremt vanskelig.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 no.delachieve.com. Theme powered by WordPress.