Intervallo rispetto a Precisione
Una cosa è che contesterei l'idea che il numero in virgola mobile più comune utilizza una rappresentazione DPFP a 64-bit (precisione a virgola mobile).
Almeno in campi in tempo reale critici per le prestazioni come i giochi, SPFP (punto di virgola mobile a precisione singola) è ancora molto più comune, poiché l'approssimazione e la velocità sono preferibili alla massima precisione.
Tuttavia forse un modo per vedere questo è che un int
a 32 bit rappresenta un intervallo di 2^32
interi (~ 4,3 miliardi). L'uso più comune di numeri interi probabilmente sarà come indici agli elementi, ed è una gamma di elementi piuttosto salutare che sarebbe difficile superare senza superare la memoria disponibile con l'hardware di oggi *.
* Si noti che possono verificarsi errori di memoria insufficiente durante l'allocazione / accesso a un blocco contiguo di 4 gigabyte, anche con 30 gigabyte gratuiti, ad es. a causa dei requisiti di contiguità di quel blocco.
Un numero intero a 32 bit non è sempre più efficiente a livello di istruzione, ma tende a essere generalmente più efficiente quando aggregato in un array, ad esempio, poiché richiede metà memoria (più indici che possono essere contenuti in un singolo pagina / riga cache, ad es.)
Si noti inoltre che come Lightness Races in Orbit
indica, non è necessariamente vero da un punto di vista generale che gli interi a 32 bit siano più comunemente usati. Ho la mia prospettiva ristretta che proviene da un campo in cui il 32% diints
è spesso aggregato da centinaia di migliaia a milioni come indici in un'altra struttura: lì il dimezzamento delle dimensioni può essere di grande aiuto.
Ora DPFP a 64 bit potrebbe essere usato molto più degli interi a 64 bit in alcuni contesti. I bit extra aggiungono precisione piuttosto che intervallo . Molte applicazioni possono richiedere precisione, o almeno avere una programmazione temporale molto più semplice con una maggiore precisione disponibile. Ecco perché probabilmente i DPFP a 64 bit potrebbero essere più comuni degli interi a 64 bit in alcune aree e perché int
potrebbe ancora essere a 32 bit in molti scenari anche su piattaforme a 64 bit.