17Aug
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ť prvkuAk považujete prvý prvok za prvý, výpočetsa stáva prvkom
( n) = adresa +( n-1) * veľkosť prvkuNie 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.