logo

IEEE standard 754 številke s plavajočo vejico

Standard IEEE za aritmetiko s plavajočo vejico (IEEE 754) je tehnični standard za računanje s plavajočo vejico, ki ga je leta 1985 uvedel Inštitut inženirjev elektrotehnike in elektronike (IEEE) . Standard je obravnaval številne težave, ugotovljene v različnih izvedbah s plavajočo vejico, ki so otežile njihovo zanesljivo uporabo in zmanjšale njihovo prenosljivost. Plavajoča vejica po standardu IEEE 754 je danes najpogostejša predstavitev realnih števil v računalnikih, vključno z osebnimi računalniki, ki temeljijo na Intelu, računalnikih Mac in večini platform Unix.

niz v Javi

Obstaja več načinov za predstavitev števila s plavajočo vejico, vendar je IEEE 754 v večini primerov najučinkovitejši. IEEE 754 ima 3 osnovne komponente:



  1. Znak mantise –
    To je preprosto kot ime. 0 predstavlja pozitivno število, medtem ko 1 predstavlja negativno število.
  2. Pristranski eksponent –
    Polje eksponenta mora predstavljati pozitivne in negativne eksponente. Pristranskost se doda dejanskemu eksponentu, da dobimo shranjeni eksponent.
  3. Normalizirana mantisa –
    Mantisa je del števila v znanstvenem zapisu ali števila s plavajočo vejico, sestavljeno iz pomembnih števk. Tukaj imamo samo 2 števki, tj. O in 1. Torej je normalizirana mantisa tista, ki ima samo eno 1 levo od decimalke.

Številke IEEE 754 so razdeljene na dve na podlagi zgornjih treh komponent: enojna natančnost in dvojna natančnost.




VRSTE PODPIS PRISTRANI EKSPONENT NORMALIZIRANA MANTIZA PRISTRANOST
Enotna natančnost 1 (31. bit) 8 (30-23) 23(22-0) 127
Dvojna natančnost 1 (63. bit)



11 (62-52) 52 (51-0) 1023

Primer –

85.125 85 = 1010101 0.125 = 001 85.125 = 1010101.001 =1.010101001 x 2^6 sign = 0 1. Single precision: biased exponent 127+6=133 133 = 10000101 Normalised mantisa = 010101001 we will add 0's to complete the 23 bits The IEEE 754 Single precision is: = 0 10000101 01010100100000000000000 This can be written in hexadecimal form 42AA4000 2. Double precision: biased exponent 1023+6=1029 1029 = 10000000101 Normalised mantisa = 010101001 we will add 0's to complete the 52 bits The IEEE 754 Double precision is: = 0 10000000101 0101010010000000000000000000000000000000000000000000 This can be written in hexadecimal form 4055480000000000>

Posebne vrednosti: IEEE je rezerviral nekaj vrednosti, ki so lahko dvoumne.

  • nič –
    Ničla je posebna vrednost, označena z eksponentom in mantiso 0. -0 in +0 sta različni vrednosti, čeprav sta obe enaki.



  • Denormalizirano –
    Če je eksponent vse ničle, mantisa pa ne, je vrednost denormalizirano število. To pomeni, da to število nima domnevne vodilne številke pred binarno točko.

    java ponovi zemljevid
  • Neskončnost -
    Vrednosti +neskončno in -neskončno sta označeni z eksponentom vseh enic in mantiso vseh ničel. Bit predznaka razlikuje med negativno in pozitivno neskončnostjo. Operacije z neskončnimi vrednostmi so dobro definirane v IEEE.

  • Ni številka (NAN) –
    Vrednost NAN se uporablja za predstavitev vrednosti, ki je napaka. To je predstavljeno, ko so polja eksponenta vse enice z bitom predznaka nič ali mantisa, ki ni 1, ki ji sledijo ničle. To je posebna vrednost, ki se lahko uporablja za označevanje spremenljivke, ki še nima vrednosti.
EKSPONENTA MANTIZA VREDNOST
0 0 točno 0
255 0

neskončnost
0 ne 0 denormalizirano
255 ne 0

Ni številka (NAN)

Podobno za dvojno natančnost (samo zamenjava 255 z 2049), obsegi števil s plavajočo vejico:

Denormalizirano Normalizirano Približno decimalno
Enotna natančnost ±2-149do (1-2-23)×2-126 ±2-126do (2 – 2-23)×2127 ± približno 10-44,85do približno 1038.53
Dvojna natančnost ±2-1074do (1-2-52)×2-1022 ±2-1022do (2 – 2-52)×21023 ± približno 10-323,3do približno 10308.3

Razpon pozitivnih števil s plavajočo vejico je mogoče razdeliti na normalizirana števila in denormalizirana števila, ki uporabljajo le del natančnosti ulomkov. Ker ima vsako število s plavajočo vejico ustrezno negirano vrednost, so zgornji obsegi simetrični okoli ničle.

Obstaja pet različnih številskih obsegov, ki jih številke s plavajočo vejico z enojno natančnostjo ne morejo predstaviti z doslej predstavljeno shemo:

  1. Negativna števila manjša od – (2 – 2-23) × 2127(negativni preliv)
  2. Negativna števila večja od – 2-149(negativni spodnji tok)
  3. Nič
  4. Pozitivna števila manjša od 2-149(pozitiven podtok)
  5. Pozitivna števila večja od (2 – 2-23) × 2127(pozitiven preliv)

Overflow na splošno pomeni, da so vrednosti prevelike, da bi jih lahko predstavili. Prenizek tok je manj resen problem, ker samo označuje izgubo natančnosti, ki je zagotovljeno zelo blizu ničli.

Tabela skupnega efektivnega obsega končnih števil s plavajočo vejico IEEE je prikazana spodaj:

java razvrščanje nizov
Binarno decimalno
Samski ± (2 – 2-23) × 2127 približno ± 1038.53
Dvojno ± (2 – 2-52) × 21023 približno ± 10308.25

Posebne operacije –

Delovanje Rezultat
n ÷ ±neskončnost 0
±Neskončnost × ±Neskončnost ±Neskončnost
±različno od nič ÷ ±0 ±Neskončnost
± končno × ± neskončno ±Neskončnost
Neskončnost + Neskončnost
Neskončnost – -Neskončnost
+Neskončnost
-Neskončnost – Neskončnost
-Neskončnost + – Neskončnost
- Neskončnost
±0 ÷ ±0 NaN
±Neskončnost ÷ ±Neskončnost NaN
±neskončno × 0 NaN
NaN == NaN False