Kāpēc datoriem skaitlis no nulles?

Satura rādītājs:

Kāpēc datoriem skaitlis no nulles?
Kāpēc datoriem skaitlis no nulles?

Video: Kāpēc datoriem skaitlis no nulles?

Video: Kāpēc datoriem skaitlis no nulles?
Video: How to Batch Import Multiple vCard Files into MS Outlook PST | Easy Method - YouTube 2024, Aprīlis
Anonim
 Skaitīšana no nulles ir ļoti izplatīta prakse daudzās datoru valodās, bet kāpēc? Lasiet tālāk, kad mēs izpētām fenomenu un kāpēc tā ir tik plaši izplatīta.
Skaitīšana no nulles ir ļoti izplatīta prakse daudzās datoru valodās, bet kāpēc? Lasiet tālāk, kad mēs izpētām fenomenu un kāpēc tā ir tik plaši izplatīta.

Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.

Jautājums

SuperUser lasītājs DragonLord ir interesanti par to, kāpēc lielākā daļa operētājsistēmu un programmēšanas valodu tiek skaitītas no nulles. Viņš raksta:

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?

Kāpēc patiešām? Tā kā prakse ir plaši izplatīta, noteikti ir praktiski iemesli tās īstenošanai.

Atbilde

SuperUser ieguldītājs Matteo piedāvā šādu ieskatu:

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

Ja jūs pirmo reizi uzskatāt pirmo elementu, aprēķins kļūst

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

Nav milzīgas atšķirības, bet katrai piekļuvei tas rada nevajadzīgu atņemšanu.

Rediģēts, lai pievienotu:

  • Masīva indeksa izmantošana kā nobīde nav prasība, bet tikai ieradums. Sistēma slēpjas ar pirmā elementa nobīdi un tiek ņemta vērā, piešķirot un atsaucoties uz elementu.
  • Dijkstra publicēja rakstu "Kāpēc numerācija jāsāk ar nulli" (pdf), kur viņš paskaidro, kāpēc, sākot ar 0, ir labāka izvēle. Sākot ar nulli, tiek nodrošināta labāka diapazonu attēlošana.

Ja jūs vēlaties padziļināt atbildi, Dijkstra papīrs ir informatīvs lasījums.

Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.

Ieteicams: