17Aug

Kāpēc datoriem skaitlis no nulles?

click fraud protection


Nulles skaitīšana 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ājums &Atbildes sesija mums priecājas par SuperUser - Stack Exchange, kas ir kopienas un 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:

Datori tradicionāli sakrīt skaitliskās vērtības, sākot no nulles. Piemēram, masīvi C programmēšanas valodās sākas ar nulles indeksu.

Kādi vēsturiski iemesli pastāv, un kādas ir praktiskas priekšrocības, sākot no nulles, skaitot no viena?

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

Atbildes

SuperUser autore Matteo piedāvā šādu ieskatu:

skaitīšanas masīvi no 0 vienkāršo katra elementa atmiņas adreses aprēķināšanu.

Ja masīvs tiek glabāts noteiktā pozīcijā atmiņā( to sauc par adresi), katra elementa pozīciju var aprēķināt kā

instagram viewer
elementu( n) = adresi + n * size_of_thement

Ja pirmo elementu uzskatāt par pirmo, aprēķinskļūst par

elementu( n) = adrese +( n-1) * size_of_thement Element

Nav milzīga atšķirība, bet katrai piekļuvei tiek pievienota nevajadzīga atņemšana.

Rediģēts, lai pievienotu:

  • Masīva indeksa izmantošana kā nobīde nav prasība, bet tikai ieradums. Sistēmas slēptu pirmā elementa nobīdi un ņemtu vērā, piešķirot un atsaucoties uz elementu.
  • Dijkstra publicēja rakstu "Kāpēc numerācija jāsāk no nulles"( 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 kas jāpievieno paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem?Šeit skatiet pilnu diskusiju pavedienu.