Dvostruka tačnost

Dvostruka tačnost (engl. double precision, double) je u računarstvu format broja koji za beleženje brojevne vrednosti racionalnog broja u pokretnom (plivajućem) zarezu. Koristi se osam bajtova (64 bita) za zapis broja. Pritom interpretacija ovog segmenta memorije zavisi od operativnog sistema ili same strukturiranosti grupa bitova u zapisu.

Veoma često se govori kolokvijalno o realnim brojevima u dvostrukoj tačnosti, to su ipak racionalni brojevi. Izraz dvostruka tačnost ne znači da se tako može prikazati broj sa dvostruko više tačnih decimala u odnosu na jednostruku tačnost. Celokupan zapis broja je dvostruko duži, a tačnost broja (koja zavisi od dužine mantise) je umesto 23 povećana na 52 (ili 55) bita, što je nešto više nego dvostruko više decimala. Pored ovoga, u dvostrukoj tačnosti se može predstaviti značajno širi opseg brojeva.

IEEE754 uredi

Prema standardu IEEE 754, realni brojevi sa dvostrukom tačnošću se dele na tri dela: znak, eksponent i frakciju (mantisu). Tačnija podela bitova po ovim elementima je:

 
  • Znak broja određuje bit sa najvećom vrednošću indeksa − 63 (najvećom težinom), pri čemu vrednost 1 označava negativan a 0 pozitivan broj.
  • Eksponent je određen sa sledećih 11 bitova na mestima 62 - 52. Ovaj broj nema znaka, a pomoću njega se određuje tzv. karakteristika koja učestvuje u računanju krajnje vrednosti broja. Ona se dobija sledećom formulom: karakteristika = eksponent - 1023.
  • Frakcija (mantisa) je vrednost broja normalizovana tako da se nalazi u opsegu veće ili jednako 0,5 i manje od 1. Formiraju je bitovi na pozicijama 51 - 0. Ovaj broj se u binarnoj reprezentaciji može predstaviti kao 0,1bbbbbbbbbbbbb..... gde su b bitovi koji mogu biti 0 ili 1. Obzirom da uvek na početku stoji 0,1 ovi bitovi se ne moraju fizički pojaviti u zapisu, to jest može se implicitno pretpostaviti da uvek stoje tu. Zato se kaže da mantisa predstavlja 53 bita tačnosti iako su zapisana samo 52 bita.

Dvostruka tačnost ima mogućnost predstavljanja   tačnih cifara. Ako se kaže da dvostrukom tačnošću može prikazati broj u „tačnosti od 16 decimala“ to je pogrešno jer se može prikazati prvih 16 značajnih cifara, bez obzira gde je decimalna zapeta.

Tačna interpretacija ovakvog broja glasi:

(-1)znak · 2karakteristika · (1, frakcija )

odnosno matematički

 

Primer uredi

Recimo da je u saglasnosti sa ovim standardom zadat binarni broj dvostruke tačnosti, čiju decimalnu reprezentaciju treba naći:

0011111010000100000000000000000000000000000000000000000000000000

Broj će prvo biti podeljen na znak, eksponent i frakciju:

0 01111101000 010000...

A potom će vrednosti parametara biti određene:

S = 0
E = (01111101000)2 = (1000)10
M = (010000...)2
C = E - 1023 = -23

Vrednost = (-1)S · (1.M)2 · 2C
= (-1)0 · (1.010000...)2 · 2-23
= 1 · (1 + 2-2)10 · 2-23
= 1.25 · 2-23

Vidi još uredi

Literatura uredi

  • Jozo Dujmović, Programski jezici i metode programiranja, 1990, Naučna knjiga, Beograd