Miért számítanak a számítógépek a nullából?
A nulláról való számítás nagyon gyakori gyakorlat számos számítógépes nyelven, de miért? Olvassa el a jelenséget és miért olyan elterjedt.
A mai Kérdések és válaszok munkamenet a Jóvagyon - a Stack Exchange alosztályának, a közösség által vezérelt Q&A webhelyek csoportjának köszönhetően..
A kérdés
A SuperUser olvasó DragonLord kíváncsi, hogy a legtöbb operációs rendszer és programozási nyelv nulla. Ír:
A számítógépek hagyományosan a nullától kezdődő számértékek. Például a C-alapú programozási nyelvek tömbjei nullától kezdődnek.
Milyen történelmi okok vannak erre, és milyen gyakorlati előnyökkel számolhatunk a nullától az egyikből?
Miért valóban? Amint a gyakorlat is széles körben elterjedt, gyakorlati okai vannak annak végrehajtására.
A válasz
A SuperUser Matteo közreműködője a következő betekintést nyújtja:
A 0-ból származó számlálási tömbök egyszerűsítik az egyes elemek memóriacímének számítását.
Ha egy tömböt egy adott helyen tárolnak a memóriában (a címnek nevezik), akkor az egyes elemek helyzete számítható
elem (n) = cím + n * méret_nagy
Ha az első elemet az első, akkor a számítás lesz
elem (n) = cím + (n-1) * méret_nagy_elem
Nem nagy különbség, de minden hozzáférésre szükségtelen kivonást ad.
Szerkesztés:
- A tömbindex használata eltolásként nem követelmény, hanem csak szokás. Az első elem eltolását a rendszer elrejtheti és figyelembe veheti az elem elosztásakor és hivatkozáskor.
- Dijkstra megjelent egy „Miért számozásnak kell kezdeni a nulláról” című dokumentumot (pdf), ahol elmagyarázza, miért jobb a 0-val való indítás. A nulláról való indítás lehetővé teszi a tartományok jobb megjelenítését.
Ha mélyebbre kívánja érezni a választ, a Dijkstra papír informatív olvasmány.
Van valami, amit hozzá kell adni a magyarázathoz? Kikapcsolja a megjegyzéseket. Szeretne további válaszokat olvasni más tech-savvy Stack Exchange felhasználóktól? Nézze meg a teljes beszélgetés szálát itt.