17Aug

Prečo počítajú počítače od nuly?


Počítanie od nuly je veľmi bežná prax v mnohých počítačových jazykoch, ale prečo?Čítajte ďalej, keď skúmame fenomén a prečo je tak rozšírený.

dnešná otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.

Otázka

čítačka SuperUser DragonLord je zvedavá, prečo väčšina operačných systémov a programovacích jazykov počíta od nuly. Píše: Počítače

tradične spájajú číselné hodnoty začínajúce od nuly. Napríklad polia v programovacích jazykoch založených na C začínajú od nuly.

Aké sú historické dôvody pre to a aké praktické výhody sa počítajú od nuly, počítané od jedného?

Prečo skutočne? Rovnako rozšírená ako prax, určite existujú praktické dôvody na jej realizáciu.

Pomocník odpovede

SuperUser Matteo ponúka tieto informácie:

Počítanie polí od 0 zjednodušuje výpočet adresy pamäte každého prvku.

Ak je pole uložené na danú pozíciu v pamäti( nazýva sa jej adresa), pozícia každého prvku môže byť vypočítaná ako prvok

( n) = adresa + n * veľkosť prvku

Ak považujete prvý prvok za prvý, výpočetsa stáva prvkom

( n) = adresa +( n-1) * veľkosť prvku

Nie je to obrovský rozdiel, ale pridáva zbytočné odčítanie pre každý prístup.

Upravené pridanie:

  • Použitie indexu poľa ako ofset nie je požiadavka, ale len zvyk. Posun prvého prvku by mohol byť skrytý systémom a zohľadnený pri priradení a referenčnom prvku.
  • Dijkstra publikoval článok "Prečo by číslovanie malo začínať na nulu"( pdf), kde vysvetľuje, prečo začínajúc číslom 0 je lepšou voľbou. Počnúc nulou umožňuje lepšie zobrazenie rozsahov.

Ak hľadáte hlbšie do odpovede, papier Dijkstra je informatívne čítanie.

Musíte niečo doplniť k vysvetleniu? Zvuk vypnúť v komentároch. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.