Miks arvutid arvavad nullist?

Sisukord:

Miks arvutid arvavad nullist?
Miks arvutid arvavad nullist?

Video: Miks arvutid arvavad nullist?

Video: Miks arvutid arvavad nullist?
Video: Export-Import Contacts From Outlook || Export-Import Outlook Contacts to CSV - PST or vCard - YouTube 2024, Aprill
Anonim
 Arvutamine nullist on paljudes arvuti keeltes väga levinud tava, aga miks? Loe edasi, kui uurime nähtust ja miks see nii laialt levinud.
Arvutamine nullist on paljudes arvuti keeltes väga levinud tava, aga miks? Loe edasi, kui uurime nähtust ja miks see nii laialt levinud.

Tänane küsimuste ja vastuste seanss jõuab meile viisakalt SuperUserini - Stack Exchange'i ja kogukonnapõhiste Q & A veebisaitide rühmitusse.

Küsimus

SuperUseri lugeja DragonLord on huvitav, miks enamus operatsioonisüsteeme ja programmeerimiskeele loetakse nulli. Ta kirjutab:

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?

Miks tõesti? Nagu tavaks on laialt levinud, on selle rakendamiseks kindlasti praktilised põhjused.

Vastus

SuperUseri kaastöötaja Matteo pakub järgmisi teadmisi:

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

Kui arvate esimest elementi, arvutatakse see arvutus

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

Mitte suur erinevus, kuid see lisab igale juurdepääsule tarbetu lahutamise.

Redigeeritud lisada:

  • Massiivi indeksi kasutamine positsioonina ei ole nõue, vaid lihtsalt harjumus. Süsteem võib varjata esimest elementi ja võtta arvesse elemendi eraldamisel ja viitamisel.
  • Dijkstra avaldas dokumendi "Miks nummerdamine peaks algama nullist" (pdf), kus ta selgitab, miks alates 0-st on parem valik. Alates nullist võimaldab vahemike paremat kuvamist.

Kui soovite otsida vastust sügavamalt, on Dijkstra paber informatiivne.

Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.

Soovitan: