Articles

Flyttall

hvorfor flyttall er nødvendig

siden datamaskinens minne er begrenset, kan du ikke lagre tall med uendelig presisjon, uansett om du bruker binære brøker eller desimaler: på et tidspunkt må du kutte av. Men hvor mye nøyaktighet er nødvendig? Og hvor er det nødvendig? Hvor mange tall og hvor mange tall?

  • til en ingeniør som bygger en motorvei, spiller det ingen rolle om det er 10 meter eller 10.0001 meter bred-deres målinger er sannsynligvis ikke så nøyaktige i utgangspunktet.for noen som designer en mikrochip, er 0.0001 meter (en tiendedel av en millimeter) en stor forskjell-men de trenger aldri å håndtere en avstand større enn 0,1 meter.en fysiker må bruke lysets hastighet (ca. 300000000) og Newtons gravitasjonskonstant (ca. 0,0000000000667) sammen i samme beregning.

for å tilfredsstille ingeniøren og chipdesigneren må et tallformat gi nøyaktighet for tall med svært forskjellige størrelser. Imidlertid er bare relativ nøyaktighet nødvendig. For å tilfredsstille fysikeren må det være mulig å gjøre beregninger som involverer tall med forskjellige størrelser.

I Utgangspunktet er det ikke nyttig å ha et fast antall heltall og brøkdeler-og løsningen er et format med et flyttall.

hvordan flyttall fungerer

ideen er å komponere en rekke to hoveddeler:

  • en significand som inneholder tallets sifre. Negative significands representerer negative tall.
  • en eksponent som sier hvor desimal (eller binær) punktet er plassert i forhold til begynnelsen av significand. Negative eksponenter representerer tall som er svært små (dvs.nær null).et slikt format tilfredsstiller alle kravene:
    • det kan representere tall med vidt forskjellige størrelser (begrenset av eksponentens lengde)
    • Det gir samme relative nøyaktighet i alle størrelser (begrenset av lengden på significand)
    • det tillater beregninger på tvers av størrelser: multiplikasjon av et veldig stort og et veldig lite tall bevarer nøyaktigheten av begge i resultatet.

    Desimal flytende punkt tall tar vanligvis form av vitenskapelig notasjon med anexplicit punkt alltid mellom 1. og 2. siffer. Eksponenten iseither skrevet eksplisitt inkludert basen, eller en e er vant til å skille den fra significand.

    standarden

    Nesten alle maskinvare-og programmeringsspråk bruker flyttall i samme binære formater, som er definert i IEEE 754-standarden. De vanlige formatene er 32 eller 64 biter i total lengde:

    Format Total bits Significand bits Exponent bits Smallest number Largest number
    Single precision 32 23 + 1 sign 8 ca. 1.2 ⋅ 10-38 ca. 3.4 ⋅ 1038
    Double precision 64 52 + 1 sign 11 ca. 2.2 ⋅ 10-308 ca. 1.8 ⋅ 10308

    Merk at det er noen særegenheter:

    • den faktiske bitsekvensen er tegnbiten først, etterfulgt av eksponenten og til slutt de signifikante bitene.eksponenten har ikke et tegn; i stedet trekkes en eksponent-bias fra den (127 for singel og 1023 for dobbel presisjon). Dette, og bitsekvensen, gjør at flyttall kan sammenlignes og sorteres riktig, selv når de tolkes som heltall.
    • significands mest signifikante siffer utelates og antas å være 1, bortsett fra subnormale tall som er merket med en all-0-eksponent og tillater et tallområde utover de minste tallene gitt i tabellen ovenfor, på bekostning av presisjon.
    • det er separate positive og negative nullverdier, forskjellig i tegnbiten, hvor alle andre biter er 0. Disse må betraktes som like, selv om deres bitmønstre er forskjellige.
    • det er spesielle positive og negative uendelig verdier, hvor eksponenten er alle 1-biter og significand er alle 0-biter. Dette er resultatene av beregninger hvor eksponentens positive rekkevidde overskrides, eller deling av et vanlig tall med null.
    • det er spesielle ikke et tall (eller NaN) verdier der eksponenten er alle 1-biter og significand er ikke alle 0-biter. Disse representerer resultatet av ulike udefinerte beregninger (som å multiplisere 0 og uendelig, enhver beregning som involverer En nan-verdi eller applikasjonsspesifikke tilfeller). Selv bit-identiske nan-verdier må ikke betraktes som like.

    hvis dette virker for abstrakt og du vil se hvordan noen spesifikke verdier ser ut i iee 754, kan du prøve Float-Leketøyet, Eller Ieee 754-Visualiseringen, Eller Float Exposed.