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

Obsah:

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

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

Video: Prečo počítajú počítače od nuly?
Video: How to Import Contacts from Excel Sheet to Android Phone | Transfer Contacts from Excel to Android - YouTube 2024, Apríl
Anonim
 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ý.
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á relácia otázok a odpovedí sa k nám pridelí zdvorilosťou SuperUser - podskupiny Stack Exchange, skupín webových stránok týkajúcich sa otázok a odpovedí.

Otázka

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

Computers traditionally tally numerical values starting from zero. For example, arrays in C-based programming languages start from index zero.

What historical reasons exist for this, and what practical advantages does counting from zero have over counting from one?

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

Odpoveď

Príspevok spoločnosti SuperUser Matteo ponúka tieto informácie:

Counting arrays from 0 simplifies the computation of the memory address of each element.

If an array is stored at a given position in memory (it’s called the address) the position of each element can be computed as

element(n) = address + n * size_of_the_element

Ak považujete prvý prvok prvý, výpočet sa stáva

element(n) = address + (n-1) * size_of_the_element

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žiadavkou, ale len zvykom. 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čína s 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.

Máte niečo doplniť vysvetlenie? 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.

Odporúča: