17Aug

Proč počítají počítače od nuly?


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 prvku

Pokud považujete první prvek za první, výpočetse stává element

( n) = adresa +( n-1) * velikost_výrobky

Není 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.