17Aug

Zakaj računalniki računajo od nič?


Štetje od nič je zelo pogosta praksa v številnih računalniških jezikih, ampak zakaj? Preberite, kako raziskujemo pojav in zakaj je tako razširjen.

Današnje vprašanje &S sejo odgovora prihaja uporaba SuperUserja, ki je razdeljena na Stack Exchange, skupinsko spletno stran Q & A.

Vprašanje

bralec SuperUserja DragonLord je zanima, zakaj večina operacijskih sistemov in programskih jezikov šteje od nič.Piše:

Računalniki tradicionalno ustvarjajo numerične vrednosti, ki se začnejo od nič.Na primer, nizi v programskih jezikih, ki temeljijo na C, se začnejo z ničelnega indeksa.

Kakšni zgodovinski razlogi obstajajo in kakšne praktične prednosti šteje od nič, če računamo od enega?

Zakaj res? Ker je to praksa razširjena, so gotovo obstajajo praktični razlogi za njegovo izvajanje.

Odzivnik

SuperUser prispevek Matteo ponuja naslednje vpoglede:

Številčni nizi od 0 poenostavijo izračun pomnilniškega naslova vsakega elementa.

Če je matrika shranjena v določenem položaju v pomnilniku( se imenuje naslov), se lahko določi položaj vsakega elementa kot element

( n) = naslov + n * velikost_zadnega elementa

Če prvega elementa upoštevate prvi, izračunpostane

element( n) = naslov +( n-1) * size_of_the_element

Ni velika razlika, ampak dodaja nepotrebno odštevanje za vsak dostop.

Urejeno, da dodate:

  • Uporaba indeksa matrike kot zamik ni zahteva, temveč le navada. Zamik prvega elementa bi lahko skril sistem in upošteval pri dodeljevanju in referenciranju elementa.
  • Dijkstra je objavil članek z naslovom "Zakaj se mora številčenje začeti na nič"( pdf), kjer pojasnjuje, zakaj je začetek z 0 boljša izbira. Zagon na nič omogoča boljšo predstavitev razpona.

Če iščete globlje v odgovor, je papir Dijkstra informativni bralec.

Ali želite dodati nekaj pojasnila? Zvok v komentarjih.Želite prebrati več odgovorov od drugih uporabniških članov stack Exchange? Oglejte si celotno temo za razpravo tukaj.