A nullától való számolás nagyon gyakori gyakorlat sok számítógépes nyelven, de miért? Olvassa tovább, amikor feltárjuk a jelenséget és miért olyan elterjedt.
A mai Kérdések és válaszok ülés a SuperUser jóvoltából érkezik hozzánk - a Stack Exchange alosztályához, amely a Q & A webhelyek közösségvezérelt csoportosulása.
A kérdés
A SuperUser olvasó, a DragonLord kíváncsi arra, hogy a legtöbb operációs rendszer és programozási nyelv miért számít nullától. Ír:
A számítógépek hagyományosan nullától kezdve számolják a numerikus értékeket. Például a C-alapú programozási nyelvek tömbje nullától indul.
Milyen történelmi okai vannak ennek, és milyen gyakorlati előnyei vannak a nullától számítva az egyhez viszonyítva?
Miért is? Bármennyire is elterjedt ez a gyakorlat, bizonyára vannak gyakorlati okai annak végrehajtására.
A válasz
A SuperUser közreműködője, Matteo a következő betekintést kínálja:
A tömbök 0-tól való számlálása leegyszerűsíti az egyes elemek memóriacímének kiszámítását.
Ha egy tömböt a memória adott helyén tárolnak (címnek hívják), akkor az egyes elemek helyzete kiszámítható
elem (n) = cím + n * az elem méreteHa az első elemet tekintjük az elsőnek, akkor a számítás lesz
elem (n) = cím + (n-1) * az elem méreteNem óriási különbség, de felesleges kivonást ad minden egyes hozzáféréshez.
A hozzáadáshoz szerkesztve:
- A tömbindex eltolásként való használata nem követelmény, hanem csak szokás. Az első elem eltolását a rendszer elrejtheti és figyelembe veheti az elem kiosztásakor és hivatkozásakor.
- Dijkstra megjelent egy cikk: „Miért kell a számozásnak nullától kezdődnie” pdf ), ahol elmagyarázza, miért jobb a 0-val kezdeni. A nullától kezdve a tartományok jobban ábrázolhatók.
Ha mélyebbre akarsz merülni a válaszban, a Dijkstra cikk informatív olvasmány.
Van valami hozzáfűzhető a magyarázathoz? Hangzik el a megjegyzésekben. Szeretne további válaszokat olvasni más, hozzáértő Stack Exchange-felhasználóktól? Nézze meg a teljes vitafonalat itt .