17Aug
Počítání od nuly je velmi běžná praxe v mnoha počítačových jazycích, ale proč?Čtěte dále, když prozkoumáme fenomén a proč je tak rozšířený.
dnešní otázka &Odpověď na zasedání se k nám dostala s laskavým svolením SuperUser - podřízenou výměnou Stack Exchange, skupině webů Q & A založených na komunitě.
Otázka
Reader DragonLord je zvědavý, proč většina operačních systémů a programovacích jazyků počítá od nuly. Píše: Počítače
tradičně spojují číselné hodnoty od nuly. Například pole v programovacích jazycích založených na C začínají od indexu nula.
Jaké historické důvody existují a jaké praktické výhody se počítá od nuly přes počítání od jednoho?
Proč vlastně?Stejně jako u praxe je jistě i praktické důvody pro její provedení.
Pomocník odpovědi
SuperUser Matteo nabízí následující informace:
Počítání polí z 0 zjednodušuje výpočet adresy paměti každého prvku.
Pokud je pole ukládáno na danou pozici v paměti( nazývá se adresa), pozice každého prvku může být vypočítána jako element
( n) = adresa + n * velikost prvkuPokud považujete první prvek za první, výpočetse stává element
( n) = adresa +( n-1) * velikost_výrobkyNení velký rozdíl, ale přidává zbytečné odečtení pro každý přístup.
Upraveno pro přidání:
- Použití indexu pole jako offset není požadavek, ale jen zvyk. Posun prvního prvku by mohl být skrytý systémem a vzat v úvahu při přidělování a odkazování na prvek.
- Dijkstra publikoval článek "Proč číslování začíná na nulu"( pdf), kde vysvětluje, proč začíná s 0 je lepší volbou. Počínaje nulou umožňuje lepší zobrazení rozsahů.
Pokud hledáte hlouběji do odpovědi, je papír Dijkstra informativní.
Musíte něco přidat k vysvětlení?Vypadněte v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.