Ho letto molte risposte ma nessuna sembra spiegare correttamente la provenienza della parola double . Ricordo un'ottima spiegazione data da un professore universitario che avevo qualche anno fa.
Richiamando lo stile della risposta di VonC, una rappresentazione in virgola mobile a precisione singola utilizza una parola di 32 bit.
- 1 bit per il segno , S
- 8 bit per l' esponente , 'E'
- 24 bit per la frazione , detta anche mantissa , o coefficiente (anche se sono rappresentati solo 23). Chiamiamolo 'M' (per mantissa , preferisco questo nome perché "frazione" può essere frainteso).
Rappresentazione:
S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM
bits: 31 30 23 22 0
(Solo per sottolineare, il bit del segno è l'ultimo, non il primo.)
Una rappresentazione in virgola mobile a precisione doppia utilizza una parola di 64 bit.
- 1 bit per il segno , S
- 11 bit per l' esponente , 'E'
- 53 bit per la frazione / mantissa / coefficiente (anche se solo 52 sono rappresentati), 'M'
Rappresentazione:
S EEEEEEEEEEE MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
bits: 63 62 52 51 0
Come puoi notare, ho scritto che la mantissa ha, in entrambi i tipi, un po 'più di informazioni rispetto alla sua rappresentazione. In effetti, la mantissa è un numero rappresentato senza tutto il suo non significativo 0
. Per esempio,
- 0,000124 diventa 0,124 × 10 −3
- 237.141 diventa 0.237141 × 10 3
Ciò significa che la mantissa sarà sempre nella forma
0.α 1 α 2 ... α t × β p
dove β è la base della rappresentazione. Ma poiché la frazione è un numero binario, α 1 sarà sempre uguale a 1, quindi la frazione può essere riscritta come 1.α 2 α 3 ... α t + 1 × 2 p e il 1 iniziale può essere implicitamente assunto, fare spazio per un bit in più (α t + 1 ).
Ora, è ovviamente vero che il doppio di 32 è 64, ma non è da qui che viene la parola.
La precisione indica il numero di cifre decimali corrette , cioè senza alcun tipo di errore di rappresentazione o approssimazione. In altre parole, indica quante cifre decimali si possono usare in sicurezza .
Detto questo, è facile stimare il numero di cifre decimali che possono essere utilizzate in sicurezza:
- precisione singola : registro 10 (2 24 ), che corrisponde a circa 7 ~ 8 cifre decimali
- doppia precisione : registro 10 (2 53 ), che è di circa 15 ~ 16 cifre decimali