17Aug
Il conteggio da zero è una pratica molto comune in molti linguaggi informatici, ma perché?Continuate a leggere mentre esploriamo il fenomeno e perché è così diffuso.
Today's Question &La sessione di risposta ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di Q & A basato su community.
La domanda
SuperUser reader DragonLord è curioso di sapere perché la maggior parte dei sistemi operativi e dei linguaggi di programmazione contano da zero. Scrive: i computer
calcolano tradizionalmente valori numerici a partire da zero. Ad esempio, gli array nei linguaggi di programmazione basati su C iniziano da zero dell'indice.
Quali ragioni storiche esistono per questo, e quali vantaggi pratici fa il conteggio da zero a contare da uno?
Perché davvero? Per quanto diffusa è la pratica, sicuramente ci sono ragioni pratiche per la sua attuazione.
La risposta Contribuente
SuperUser Matteo offre le seguenti informazioni:
Matrici di conteggio da 0 semplifica il calcolo dell'indirizzo di memoria di ciascun elemento.
Se una matrice è memorizzata in una data posizione in memoria( è chiamata l'indirizzo) la posizione di ogni elemento può essere calcolata come elemento
( n) = indirizzo + n * dimensione_del_elementoSe consideri il primo elemento il primo, il calcolodiventa
element( n) = indirizzo +( n-1) * size_of_the_elementNon è un'enorme differenza ma aggiunge una sottrazione non necessaria per ogni accesso.
Modificato per aggiungere:
- L'uso dell'indice di array come offset non è un requisito ma solo un'abitudine. L'offset del primo elemento potrebbe essere nascosto dal sistema e preso in considerazione durante l'allocazione e l'elemento di riferimento.
- Dijkstra ha pubblicato un articolo "Perché la numerazione dovrebbe iniziare da zero"( pdf) dove spiega perché iniziare con 0 è una scelta migliore. L'avvio a zero consente una migliore rappresentazione degli intervalli.
Se stai cercando di approfondire la risposta, la carta Dijkstra è una lettura informativa.
Hai qualcosa da aggiungere alla spiegazione? Sound off nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla la discussione completa qui.