Miért számítanak a számítógépek a nullaaktól?

Tartalomjegyzék:

Miért számítanak a számítógépek a nullaaktól?
Miért számítanak a számítógépek a nullaaktól?

Videó: Miért számítanak a számítógépek a nullaaktól?

Videó: Miért számítanak a számítógépek a nullaaktól?
Videó: Как конвертировать контакты электронных таблиц Excel в формат VCF 2024, Lehet
Anonim
 A nulláról történő számolás sok számítógépes nyelvben nagyon gyakori gyakorlat, de miért? Olvassa el, miközben feltárjuk a jelenséget, és miért olyan széles körben elterjedt.
A nulláról történő számolás sok számítógépes nyelvben nagyon gyakori gyakorlat, de miért? Olvassa el, miközben feltárjuk a jelenséget, és miért olyan széles körben elterjedt.

A mai Kérdések és válaszok munkamenetét a SuperUser - a Stack Exchange, a Q & A weboldalak közösség által irányított csoportosulásának részlegével - köszönheti.

A kérdés

SuperUser olvasó DragonLord kíváncsi arról, hogy a legtöbb operációs rendszer és a programozási nyelv számít nulláról. Ír:

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?

Miért valóban? Amint olyan széles körben elterjedt, mint a gyakorlat, biztosan vannak gyakorlati okok annak végrehajtására.

A válasz

A SuperUser közreműködője, a Matteo a következő beismeréseket kínálja:

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

Ha az első elemet az elsőnek tekintjük, akkor a számítás lesz

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

Nem hatalmas különbség, de szükségtelen kivonást ad minden egyes hozzáféréshez.

Szerkesztett hozzá:

  • A tömbindex mint eltolás használata nem követelmény, hanem csak szokás. Az első elem eltolását a rendszer elrejtheti, és figyelembe vehető az elemek hozzárendelésekor és hivatkozásakor.
  • A Dijkstra kiadott egy cikket: "Miért kell a számozás nulláról indulni" (pdf), ahol megmagyarázza, miért jobb választás a 0-tól? A nullától kiindulva a tartományok jobb ábrázolása lehetséges.

Ha mélyrehatóbb választ keres, akkor a Dijkstra-papír tájékoztató jellegű.

Van valami a magyarázathoz? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.

Ajánlott: