Domovská » jak » Proč počítají počítače od nuly?

    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č? Přečtěte si, jak prozkoumáme fenomén a proč je tak rozšířený.

    Dnešní zasedání Otázky a odpovědi nás přichází s laskavým svolením SuperUser - podřízené rozdělení Stack Exchange, které je založeno na komunitě prostřednictvím skupin webových stránek.

    Otázka

    Čtecí zařízení DragonLord SuperUser je zvědavá, proč většina operačních systémů a programovacích jazyků počítá od nuly. Napsal:

    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é to existují historické důvody a jaké praktické výhody počítá od nuly, které počítá od jednoho?

    Proč vlastně? Stejně jako v praxi je to jistě, existují praktické důvody pro její zavedení.

    Odpověď

    Contributor společnosti 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 uloženo na danou pozici v paměti (nazývá se adresou), může být poloha každého prvku vypočítána jako

    element (n) = adresa + n * size_of_elementu 

    Pokud považujete první prvek za první, výpočet se stává

    element (n) = adresa + (n-1) * velikost prvku 

    Není to obrovský rozdíl, ale přidává zbytečné odečtení pro každý přístup.

    Přidáno:

    • 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í by mělo začít od nuly" (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, dokument Dijkstra je informativní čtení.


    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.